WTForms,如何将 JSON 数据附加到请求
WTForms, how to attach JSON data to the request
我正在使用 WTForms 为 Flask 应用程序构建表单。
此表单的 las 字段是与 google PlacesAPI 配合使用的地址字段,因此它会自动完成用户在该字段中输入的地址。
我希望能够在用户选择地址时保存此 PlacesAPI 生成的所有数据,但我正在努力寻找将这些数据发送到服务器的正确方法。
我有一个以 MongoDB 作为后端的 Flask。
我试过的
- AJAX
我使用 Jquery Ajax 方法提交了表单,我通过将 WTF-JSON 添加到我的项目中对其进行了验证,它对表单 class 和一些方法进行了 monkeypatches所以它可以将 JSON 处理为 ***kwargs.
问题:这让我无法在表单验证时轻松重定向用户。
- 添加隐藏输入字段
我可以添加一个隐藏的输入字段,我将所有地址 JSON 添加为一个字符串,然后在我的后端处理它
问题: 不知怎么的,这个simes hacky,我想知道是否有更好的方法
问题
执行此操作的正确方法是什么?这是我第一次尝试,所以我很确定这里一定有我想念的方法。非常感谢您的帮助。
考虑到您所解释的场景,选项 # 1 是最佳选项。将用户重定向到表单验证页面应该没有任何问题,因为您可以通过 XHR 管理它。这是我的建议
@catalog.route('/')
@catalog.route('/your_page')
def home():
if request.is_xhr:
## Here you can call the def and store the addresses
addresses = Address.query.all()
json_addresses jsonify({'addresses': addresses)})
return render_template('your_form_page.html', json_addresses)
在呈现模板页面时,您会传递更多参数,例如验证消息。
请根据您的功能需要使用is_xhr
,但我推荐它。
我正在使用 WTForms 为 Flask 应用程序构建表单。 此表单的 las 字段是与 google PlacesAPI 配合使用的地址字段,因此它会自动完成用户在该字段中输入的地址。
我希望能够在用户选择地址时保存此 PlacesAPI 生成的所有数据,但我正在努力寻找将这些数据发送到服务器的正确方法。
我有一个以 MongoDB 作为后端的 Flask。
我试过的
- AJAX
我使用 Jquery Ajax 方法提交了表单,我通过将 WTF-JSON 添加到我的项目中对其进行了验证,它对表单 class 和一些方法进行了 monkeypatches所以它可以将 JSON 处理为 ***kwargs.
问题:这让我无法在表单验证时轻松重定向用户。
- 添加隐藏输入字段
我可以添加一个隐藏的输入字段,我将所有地址 JSON 添加为一个字符串,然后在我的后端处理它
问题: 不知怎么的,这个simes hacky,我想知道是否有更好的方法
问题
执行此操作的正确方法是什么?这是我第一次尝试,所以我很确定这里一定有我想念的方法。非常感谢您的帮助。
考虑到您所解释的场景,选项 # 1 是最佳选项。将用户重定向到表单验证页面应该没有任何问题,因为您可以通过 XHR 管理它。这是我的建议
@catalog.route('/')
@catalog.route('/your_page')
def home():
if request.is_xhr:
## Here you can call the def and store the addresses
addresses = Address.query.all()
json_addresses jsonify({'addresses': addresses)})
return render_template('your_form_page.html', json_addresses)
在呈现模板页面时,您会传递更多参数,例如验证消息。
请根据您的功能需要使用is_xhr
,但我推荐它。