python - flask sqlalchemy 有没有表单字典键值快速更新的方法
怪我咯
怪我咯 2017-04-17 17:36:13
0
4
309

类似于修改个人资料,表单对应数据库
flask-WTF 从表单获得的 form.data 是一个字典的结构:{id: 1, name='123'}
因为如果用下面这种方法更新数据,表单长了这样重复的代码就太长了,所以请问 sqlalchemy 有没有把字典传进去自动处理?
a.id = form.data['id']
a.name = form.data['name']
db.session.commit()

怪我咯
怪我咯

走同样的路,发现不同的人生

Antworte allen(4)
左手右手慢动作

a.update(form.data)
这是字典的一个基本方法,与sqlalchamy无关。

伊谢尔伦

楼上都好像没有答道楼主的点上,楼主的需求大概是想把form直接转成orm的数据

楼主大概需要这个 http://wtforms.simplecodes.com/docs/0.6.1/forms.html#wtforms.form.Form.populate_obj

def edit_profile(request):
    user = User.objects.get(pk=request.session['userid'])
    form = EditProfileForm(request.POST, obj=user)

    if request.POST and form.validate():
        form.populate_obj(user)
        user.save()
        return redirect('/home')
    return render_to_response('edit_profile.html', form=form)
阿神

用getter和setter方法啊

for key in form.data.iterkeys():
    if(hasattr(a,key)):
        setter(a,key,form.data[key])
洪涛

sqlalchemy官方文档上有说明,更新数据库表记录一般都是先查出来,然后再更新,最后提交数据库会话。
然而sqlalchemy也支持sql语句,可以自己写,不过自己写的可能比较困难,要考虑到很多安全方面的问题
附官方文档链接http://docs.sqlalchemy.org/en/latest/cor...

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!