flask-wtf扩展中FormField报错:'csrf_token': ['CSRF token missing']

在使用flask_wtf时使用的这个结构FieldList(FormField(SomeForm)) 报错:

'csrf_token': ['CSRF token missing']

因为FormField也是form,flask_wtf中引入的Form默认开启了csrf验证(flask_wtf.Form是 wtforms.ext.csrf.form.SecureForm的子类), 所以如下定义会报错:

from flask_wtf import Form
class SomeForm(Form): 
    pass

解决:

from wtforms import Form as BaseForm
class SomeForm(BaseForm): 
    pass

或(不太优美,不太推荐):

from flask_wtf import Form
class SomeForm(Form):
    def __init__(self, *args, **kwargs):
        kwargs['csrf_enabled'] = False
        Form.__init__(self, *args, **kwargs)
    
    pass

参考:

https://www.reddit.com/r/flask/comments/2s47nz/af_how_to_get_formfield_and_fieldlist_working/

http://stackoverflow.com/questions/15649027/wtforms-csrf-flask-fieldlist/15651474#15651474

转载于:https://my.oschina.net/tinyhare/blog/752144

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值