sqlalchemy反射表并插入一行

时间:2014-03-06 11:06:39

标签: python-3.x sqlalchemy

使用sqlalchemy构建db_connector的包装器...

因为我试图保持通用我认为我不会知道什么表有il因此我不能使用orm开发线....试图使用反射系统,我从数据库反映表并尝试创建此表中的新对象,以插入我从用户获得的新信息。

目前我的func获取table_name作为要插入新行和row_arguments的表,作为带有新行参数的列表...

我正在努力创建该表的新对象,更精确的表格行的对象,我认为如果id管理这一切都会膨胀并使用会话我会设法添加新行。 我的问题是如何从我传递的东西中创造出那种物体?我在类中定义了引擎,Session,元数据......

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()

在代码中间我有很多我尝试过的东西,似乎没有任何成功....我有点绝望,没有想法,请帮助

想法是在通过

检索它们之前不知道我面临什么样的表

1 个答案:

答案 0 :(得分: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()