gpt4 book ai didi

python - WTForms-JSON 不适用于 FormFields

转载 作者:太空宇宙 更新时间:2023-11-03 11:02:36 30 4
gpt4 key购买 nike

当我使用 WTForms-JSON 时,嵌套表单 (FormFields) 没有填充数据。我无法发现我的错误,请参见下面的示例。

from flask import Flask, request, jsonify
from flask_wtf import Form
from wtforms import TextField, FormField, IntegerField
from wtforms.validators import InputRequired
import wtforms_json

app = Flask(__name__)
app.config["WTF_CSRF_ENABLED"] = False
wtforms_json.init()


class Address(Form):
street = TextField('street', validators=[InputRequired()])
number = IntegerField('number', validators=[InputRequired()])


class User(Form):
name = TextField('name', validators=[InputRequired()])
address = FormField(Address, label='address')


@app.route('/', methods=['POST'])
def why_no_work():
form = User()

form.from_json(request.json)
print form.data

if form.validate():
return jsonify(success='YEAH')
else:
return jsonify(errors=form.errors)


if __name__ == '__main__':
app.run(debug=True)

我发送以下 JSON 请求

{
"name": "Alex",
"address": {
"street": "Plz Work Street",
"number": 1337
}
}

但是 form.from_json(request.json) 之后的打印显示地址对象从未填充数据(此外,“适当的”错误从路由返回)。

打印输出:{'name': u'Alex', 'address': {'street': u'', 'number': None}}

我正在使用 WTForms 2.0.2,WTForms-JSON 0.2.8

这是一个错误还是我做错了什么?感谢您的帮助!

最佳答案

我错误地使用了 from_json() 函数,因为它是一个返回实例化形式的类函数。请参阅下面的路线更新代码。

@app.route('/', methods=['POST'])
def why_no_work():
form = User.from_json(request.json) # <-- This line right here

if form.validate():
return jsonify(success='YEAH')
else:
return jsonify(errors=form.errors)

关于python - WTForms-JSON 不适用于 FormFields,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28508228/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com