python - flask sqlalchemy 有没有表单字典键值快速更新的方法
怪我咯
怪我咯 2017-04-17 17:36:13
[Python讨论组]

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

怪我咯
怪我咯

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

全部回复(4)
ringa_lee

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])
PHP中文网

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号