我制作了Flask WTForm,以允许用户确认一系列信息。 我显示了预先填充了信息的表单,用户可以对其进行修改并提交表单。 但是,即使没有错误发生(form.errors为空),form.validate()也总是返回False。 我究竟做错了什么?

应用程式

@app.route('/validation', methods=['GET', 'POST'])

def validation():

# initiate form

item = session.get('item', None)

form = AttrForm(request.form)

# pre-fill validation

form.price.data = item['price']

form.surface.data = item['surface']

form.rooms.data = item['rooms']

form.year.data = item['year']

# get area options and pre-fill

options = get_options()

form.subarea.choices = options

form.subarea.data = get_choice(options, item['subarea'])

# catch errors

if not form.validate_on_submit():

display = {'url': False, 'fill' : True, 'valid' : False}

return render_template('index.html', display=display, form=form)

# set new values

item['price'] = request.form['price']

item['surface'] = request.form['surface']

item['rooms'] = request.form['rooms']

item['year'] = request.form['year']

item['subarea'] = request.form['subarea']

session['item'] = item

return redirect(url_for('results'))

的HTML

{% block attr_form %}

Attribute Form

Loyer (hors charges) {{ render_field(form.price) }}
Surface {{ render_field(form.surface) }}
Année de construction {{ render_field(form.year) }}
Nombre de pièces {{ render_field(form.rooms) }}
Quartier administratif {{ render_field(form.subarea) }}

{% endblock %}

帮手

{% macro render_field(field) %}

{{ field }}

{% if field.errors %}

{% for error in field.errors %}

{{ error }}

{% endfor %}

{% endif %}

{% endmacro %}

形成

class AttrForm(FlaskForm):

price = DecimalField('price', validators=[DataRequired()])

subarea = SelectField('subarea', coerce=int)

surface = DecimalField('surface', validators=[DataRequired()])

year = IntegerField('year', validators=[DataRequired()])

rooms = IntegerField('rooms', validators=[DataRequired()])

我们可以看到AttrForm类吗?

当然! 我编辑了问题。

首先,请确保在烧瓶配置中定义了SECRET_KEY。 您需要执行此操作才能使CSRF保护生效。 http://flask-wtf.readthedocs.io/en/stable/csrf.html

其次,通过插入form.hidden_tag将csrf令牌添加到html表单中。

{{ form.hidden_tag() }}

...

有关详细信息,请参见http://flask-wtf.readthedocs.io/en/stable/quickstart.html。

好吧,那是Flask友好的提醒,安全性很重要! 感谢您的提示!

python表单验证wtf_关于python 3.x:无法验证Flask WTF-Form相关推荐

  1. python表单提交的两种方式_详解flask表单提交的两种方式

    一.通用方式 通用方式就是使用ajax或者$.post来提交. 前端html ... data Submit &nbsp 将操作绑定 $(document).ready(function() ...

  2. python表单交互

    python表单交互 ​ 下载的静态网页总是返回相同的内容,而与网页交互,根据用户输入返回对应的内容.HTML定义了两种向服务器提交数据的方法,分别是GET和POST.使用GET方法时候,会将类似于查 ...

  3. python表单处理_python flask 表单处理Flask-WTF

    涉及到的插件和包有Flask-WTF,WTForms.内容有表单的创建使用流程,一些最佳实践,还有在页面显示提示消息的简单方式,配合Flask内置的 flash(). Flask的requset对象包 ...

  4. python表单验证_python表单验证封装

    在Web程序中往往包含大量的表单验证的工作,如:判断输入是否为空,是否符合规则. hello hostname: ip: port: phone: HTML #!/usr/bin/env python ...

  5. python表单验证_Python——flask_wtf验证form表单

    前言: web表单是web应用程序的基本功能.它是HTML页面中负责数据采集的部件.表单有三个部分组成:表单标签.表单域.表单按钮.表单允许用户输入数据,负责HTML页面数据采集,通过表单将用户输入的 ...

  6. python表单数据系统_使用MultipartPostHandler用Python发布表单数据

    问题:使用Python的urllib2发布数据时,所有数据都是URL编码的,并作为内容类型发送:application/x-www-form-URL encoded.上载文件时,应将内容类型设置为mu ...

  7. python表单提交的两种方式_Flask框架学习笔记之表单基础介绍与表单提交方式

    本文实例讲述了Flask框架学习笔记之表单基础介绍与表单提交方式.分享给大家供大家参考,具体如下: 表单介绍 表单是HTML页面中负责数据采集功能的部件.由表单标签,表单域和表单按钮组成.通过表单,将 ...

  8. python选择表单_如何使用Python在表单中选择选项?

    下面是一些基本用法示例:>>> import mechanize >>> br = mechanize.Browser() >>> br.open ...

  9. python表单文件请求_python处理multipart/form-data的请求方法

    方法1: import requests url = "http://www.xxxx.net/login" #参数拼凑,附件上传格式如picurl参数,其他表单参数值拼成tupl ...

最新文章

  1. python中国大学排名爬虫写明详细步骤-python中国大学排名爬虫
  2. VIM 使用技巧(常用提取)
  3. 论文浅尝 | 面向视觉常识推理的层次语义增强方向图网络
  4. python中wraps_【Python】Flask中@wraps的使用
  5. 【网络安全工程师面试合集】—不要随便浏览一些奇怪的小网站哦
  6. 结构化思维:掌握这3点,分析报告不再愁
  7. 仓库货位卡标识牌_仓库应如何规划?
  8. 安全辅助 冰刃 IceSword 1.2 中文版 修正号061022
  9. 【Hoxton.SR1版本】Spring Cloud Gateway之GlobalFilter全局过滤器
  10. 极品飞车ol服务器连接不稳定,极品飞车OL常见客户端问题有哪些_客户端问题解决方法_3DM网游...
  11. 界面设计配色方案说明图一(含RGB配色表)
  12. Linux的mysql主从配置
  13. 微信公众号小程序怎么做 微信公众号小程序制作教程
  14. 小波变换matlab程序,图像小波变换原理_图像小波变换的matlab实现详解
  15. PHP电话号码 区号,中国城市电话区号对照表
  16. MySQL-存储表情字符
  17. 树莓派与ESP8266-MQTT无线通信
  18. 真的必须要在主线程更新UI吗?
  19. 从UAP-Studio中导出项目并且部署到服务器上
  20. 前端学习者应该知道的前端学习方向

热门文章

  1. 实验9:Problem C: 农夫果园
  2. MKS MONSTER8 V1.0使用说明书(基于Marlin 2.0.X固件配置Voron 2.4)
  3. 【Linux】进程间通信(学习复习兼顾)
  4. 使用python采集某二手房源数据并做数据可视化展示(含完整源代码)
  5. 电商平台获取淘宝详情高级版接口、卖家信息、sku、发货地等参数字段调用示例展示
  6. 读王竹峰老师 《一个数据库十年老兵的思考与总结》 有感
  7. 动态类型+面向对象 = shit
  8. C++异常 和 SEH异常 的一点小结
  9. 读书笔记:《个人信息保护法与日常生活》
  10. 树上三角形(idea+lct或splay)