python表单验证wtf_关于python 3.x:无法验证Flask WTF-Form
我制作了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相关推荐
- python表单提交的两种方式_详解flask表单提交的两种方式
一.通用方式 通用方式就是使用ajax或者$.post来提交. 前端html ... data Submit   将操作绑定 $(document).ready(function() ...
- python表单交互
python表单交互 下载的静态网页总是返回相同的内容,而与网页交互,根据用户输入返回对应的内容.HTML定义了两种向服务器提交数据的方法,分别是GET和POST.使用GET方法时候,会将类似于查 ...
- python表单处理_python flask 表单处理Flask-WTF
涉及到的插件和包有Flask-WTF,WTForms.内容有表单的创建使用流程,一些最佳实践,还有在页面显示提示消息的简单方式,配合Flask内置的 flash(). Flask的requset对象包 ...
- python表单验证_python表单验证封装
在Web程序中往往包含大量的表单验证的工作,如:判断输入是否为空,是否符合规则. hello hostname: ip: port: phone: HTML #!/usr/bin/env python ...
- python表单验证_Python——flask_wtf验证form表单
前言: web表单是web应用程序的基本功能.它是HTML页面中负责数据采集的部件.表单有三个部分组成:表单标签.表单域.表单按钮.表单允许用户输入数据,负责HTML页面数据采集,通过表单将用户输入的 ...
- python表单数据系统_使用MultipartPostHandler用Python发布表单数据
问题:使用Python的urllib2发布数据时,所有数据都是URL编码的,并作为内容类型发送:application/x-www-form-URL encoded.上载文件时,应将内容类型设置为mu ...
- python表单提交的两种方式_Flask框架学习笔记之表单基础介绍与表单提交方式
本文实例讲述了Flask框架学习笔记之表单基础介绍与表单提交方式.分享给大家供大家参考,具体如下: 表单介绍 表单是HTML页面中负责数据采集功能的部件.由表单标签,表单域和表单按钮组成.通过表单,将 ...
- python选择表单_如何使用Python在表单中选择选项?
下面是一些基本用法示例:>>> import mechanize >>> br = mechanize.Browser() >>> br.open ...
- python表单文件请求_python处理multipart/form-data的请求方法
方法1: import requests url = "http://www.xxxx.net/login" #参数拼凑,附件上传格式如picurl参数,其他表单参数值拼成tupl ...
最新文章
- python中国大学排名爬虫写明详细步骤-python中国大学排名爬虫
- VIM 使用技巧(常用提取)
- 论文浅尝 | 面向视觉常识推理的层次语义增强方向图网络
- python中wraps_【Python】Flask中@wraps的使用
- 【网络安全工程师面试合集】—不要随便浏览一些奇怪的小网站哦
- 结构化思维:掌握这3点,分析报告不再愁
- 仓库货位卡标识牌_仓库应如何规划?
- 安全辅助 冰刃 IceSword 1.2 中文版 修正号061022
- 【Hoxton.SR1版本】Spring Cloud Gateway之GlobalFilter全局过滤器
- 极品飞车ol服务器连接不稳定,极品飞车OL常见客户端问题有哪些_客户端问题解决方法_3DM网游...
- 界面设计配色方案说明图一(含RGB配色表)
- Linux的mysql主从配置
- 微信公众号小程序怎么做 微信公众号小程序制作教程
- 小波变换matlab程序,图像小波变换原理_图像小波变换的matlab实现详解
- PHP电话号码 区号,中国城市电话区号对照表
- MySQL-存储表情字符
- 树莓派与ESP8266-MQTT无线通信
- 真的必须要在主线程更新UI吗?
- 从UAP-Studio中导出项目并且部署到服务器上
- 前端学习者应该知道的前端学习方向
热门文章
- 实验9:Problem C: 农夫果园
- MKS MONSTER8 V1.0使用说明书(基于Marlin 2.0.X固件配置Voron 2.4)
- 【Linux】进程间通信(学习复习兼顾)
- 使用python采集某二手房源数据并做数据可视化展示(含完整源代码)
- 电商平台获取淘宝详情高级版接口、卖家信息、sku、发货地等参数字段调用示例展示
- 读王竹峰老师 《一个数据库十年老兵的思考与总结》 有感
- 动态类型+面向对象 = shit
- C++异常 和 SEH异常 的一点小结
- 读书笔记:《个人信息保护法与日常生活》
- 树上三角形(idea+lct或splay)