最近从expressjs移至flask。
我正在使用flask flask-sqlalchemy flask-wtf
这是一个形式繁重的应用程序。我希望大约有30-50个表单,每个表单有20-100个字段。
客户端表单正在使用flask-wtf
我能够创建模型并能够创建原始功能。问题在于,对于每种表格,我都必须手动进行
创建 [...]
# after validation
someItem = SomeModel(someField1=form.someField1.data, ..., somefieldN = form.someFieldN.data)
db.session.add(someItem)
db.session.commit()
更新
[....]
queryItem = SomeModel.query.filter_by(id=item_id)
queryItem.somefield1 = form.someField1.data
[...]
queryItem.somefieldN = form.someFieldN.data
db.session.commit()
很明显,有很多形式,它变得非常乏味。有没有办法 如果您能够建议一个可以做到这一点的图书馆 我在网上搜索了最近几个小时。我最接近的是创建字典,然后像这样传递它
someDict = {'someField1': form.someField1.data, ....}
SomeModel.query.filter_by(id=item.id).update(someDict)
如您所见,它同样乏味
我希望找到一种将表单数据直接传递到SomeModel
进行创建和更新的方法。
我以前使用过expressjs + knex,经过验证后,我只能将req.body传递给knex。
感谢您的时间
答案 0 :(得分:0)
使用“ populate_obj”(注意:模型字段名称必须与表单字段匹配)
创建记录:
someItem = SomeModel()
form.populate_obj(someItem)
db.session.add(someItem)
db.session.commit()
更新记录:
queryItem = SomeModel.query.filter_by(id=item_id)
form.populate_obj(queryItem)
db.session.commit()