2011-10-13 107 views
4

围绕在这一个房屋周围,似乎无法得到正确的语法。在SQLAlchemy中插入一行

我想要做的就是在SQLAlchemy的表中插入一行。该文件没有道理对我心想:

class sqlalchemy.sql.expression.Insert(table, values=None, inline=False, bind=None, prefixes=None, returning=None, **kwargs) 

我来最接近的是

userChoices = meta.Session.query(model.CompUserChoices).filter(model.CompUserChoices.inmptl_user_name == postdict['userid']).filter(model.CompUserChoices.inmptl_option_id == postdict['leg']).all() 

userChoices.insert({model.CompUserChoices.inmptl_user_name:postdict['userid']},\ 
             {model.CompUserChoices.inmptl_option_id:postdict['leg']},\ 
             {model.CompUserChoices.inmptl_comp_choice_id:newChoices[i]}) 

可能有人请告诉我正确的语法!

回答

7

我不确定我是否明白你正在尝试做什么,但添加一行通常不会比创建模型对象并将其添加到会话更困难。

userChoices = model.CompUserChoices() 
# Do stuff on userChoices 
meta.Session.add(userChoices) 
meta.Session.commit() # if you have to commit manually 
+0

从哪里得到meta? –

+0

它是一个MetaData对象,但您通常不必直接处理它。更有可能的是,你直接处理Session对象。 – madjar

+0

好的,谢谢 - 我刚刚第一次使用Session对象获得了SQLAlchemy与数据库的交谈,所以很高兴知道我处于正确的轨道上。 :-) *开心* –