从request.form填充sqlalchemy而不使用wtforms

时间:2017-05-24 21:33:09

标签: python python-2.7 sqlalchemy flask-sqlalchemy

假设我通过以下方式从sqlalchemy提取数据:

u=Mobility.query.filter_by(username=request.form.get('user')).first()

Mobility类有3个条目用户名(字符串),字母(字符串),日期(日期时间)。我的request.form将作为其词典的一部分

request.form=ImmutableMultiDict([('letter', u'values'), ('date', u'2017-05-24'), ('user',u'someone'),('stuff',u'stuffvalue')])

我有一个如下所示的标题:

header=[]
for head in Mobility.__table__.columns:
 header.append(head)

我想做以下事情:

for head in header:
 u[head.name]=request.form[head.name]

db.session.commit()

1 个答案:

答案 0 :(得分:0)

您可以使用getattr来实现这一目标:

for head in header:
    setattr(u, head.name, request.form[head.name])

这允许您动态设置对象的任何属性。