首页 > flask sqlalchemy 有没有表单字典键值快速更新的方法

flask sqlalchemy 有没有表单字典键值快速更新的方法

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


用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...


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)
【热门文章】
【热门文章】