Flask-WTF没有处理我的表单响应
-
27-10-2019 - |
题
我正在使用Flask(vsn 0.8)和Flask-WTF(vsn 0.5.2)(例如,解析表单)来创建一个非常简单的网站。但是,我无法让Flask-WTF正确解析我的GET结果。
我的相关代码如下: 通用标签
如果我使用GET提交带有单个字段“ aws_id”的表单,则会在控制台上获得以下输出。 通用标签
在我看来,提交工作正常,但是Flask-WTF并未执行该操作。本质上,处理表单输出的旧方法有效,即request.args.get方法,但是新的form.is_submitted和form.validate_on_submit并没有发挥其不可思议的作用。
有什么想法吗?(WTF!)
解决方案
我将我的应用程序移到了网站的根目录,删除了其中的那个(=冗余),然后将request.form
添加到MyForm类中。那似乎解决了。还必须将csrf_enabled
设置为false。
通用标签
其他提示
Flask-WTF的Form
类is_submitted
方法如下:
通用标签
并且在其__init__
中具有以下代码,该代码通常可以确保从Flask请求中自动加载表单数据:
通用标签
很明显...如果您通过GET提交表单,您将不会获得任何不错的自动行为。这是可以理解的,因为如果是GET请求,则不清楚表单是已提交还是您正在加载页面。除了CSRF的任何问题。
validate_on_submit
也不起作用,因为它也依赖于is_submitted
Flask本身也不会将GET字段解析为您的request.form
。
您最终不得不执行以下操作: 通用标签
(都假定您的MyForm
类是从from flask.ext.wtf import Form
继承的)