2014-03-06 72 views
1

IM建設使用SQLAlchemy的一個db_connector的包裝...SQLAlchemy的反映表中插入一行

因爲即時通訊試圖保持通用的我相信我不知道哪些表金正日有,因此我不能用發展的ORM線....試圖使用反射系統,在那裏我反映了數據庫中的表格,並試圖從該表格創建新的對象,以便插入從用戶處獲得的新信息。

我FUNC被TABLE_NAME爲插入新行和row_arguments,作爲與新行參數列表表的那一刻...

IM奮力創建表的新對象,進行更精確的對象一行表格,我認爲如果id管理的話,所有的都會膨脹,並使用會話我會設法添加新的行。 我的問題是,我如何從我通過的東西創建這種對象?我得到的發動機,會議,本身定義的類的元數據....

def insertRow(self,table_name,row_arguments): 
    self.table = self.getTablesInDB(table_name) 
    self.session = self.Session() 

    class Test(object): 
     pass 

    mapper(Test,self.table) 
    string ="" 
    for i in row_arguments: 
     string += i 
    insert = Test() 
    self.session.add(insert) 
    self.session.commit() 

中的代碼,我有很多事情我想中間沒有什麼似乎succeedd .... IM有點絕望,出出主意請幫

想法是不是什麼樣的表的方式獲取他們之前即時通訊面臨知道

回答

2

如果你嘗試:

def insertRow(self,table_name,row_arguments): 
    table = self.getTablesInDB(table_name) 
    self.session = self.Session() 

    # Considering row_arguents is a dict {"colname1":value, "colname2":value} 
    insert = table(**row_arguments) 

    self.session.add(insert) 
    self.session.commit() 
+0

但是如果你想row_arguments是你的列表可以使用t能夠(* row_arguments) 這取決於你的構造函數 –

+1

不工作,如果我把插入= self.table 我得到的錯誤'表'對象不可調用 ,如果我使用我沒有添加自我之前, UnboundLocalError:分配前引用的本地變量「表」 –

+1

表應該是從Base繼承的模型的類。 –