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

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

怪我咯
怪我咯

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

全部回覆(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.. .

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!