Flask之WTForms验证
有时候我们经常会跟前端提交的表单数据打交道,每次手写验证规则真的很繁琐。Flask-WTF扩展模块提供了前端表单自动生成和前端表单提交数据验证的功能。
WTForms支持的HTML标准字段
字段对象 | 说明 |
---|---|
StringField | 文本字段 |
TextAreaField | 多行文本字段 |
PasswordField | 密码文本字段 |
HiddenField | 隐藏文本字段 |
DateField | 文本字段,值为datetime.date格式 |
DateTimeField | 文本字段,值为datetime.datetime格式 |
IntegerField | 文本字段,值为整数 |
DecimalField | 文本字段,值为decimal.Decimal |
FloatField | 文本字段,值为浮点数 |
BooleanField | 复选框,值为True和False |
RadioField | 一组单选框 |
SelectField | 下拉列表 |
SelectMultipleField | 下拉列表,可选择多个值 |
FileField | 文本上传字段 |
SubmitField | 表单提交按钮 |
FormField | 把表单作为字段嵌入另一个表单 |
FieldList | 一组指定类型的字段 |
WTForms常用验证函数
验证函数 | 说明 |
---|---|
DataRequired | 确保字段中有数据 |
EqualTo | 比较两个字段的值,常用于比较两次密码输入 |
Length | 验证输入的字符串长度 |
NumberRange | 验证输入的值在数字范围内 |
URL | 验证URL |
AnyOf | 验证输入值在可选列表中 |
NoneOf | 验证输入值不在可选列表中 |
register.html
<!DOCTYPE html>
<html>
<head><meta charset="UTF-8"><title>Register</title>
</head>
<body>
<form method="post"><div>用户名:<input type="text" name="username"></div><div>邮 箱:<input type="text" name="email"></div><div>密 码:<input type="password" name="password1"></div><div>再次输入:<input type="password" name="password1"></div><div><input type="submit" value="Submit"></div>
</form>
</body>
</html>
flask.py
# coding=utf-8
from flask import Flask, render_template, request
from wtforms import Form, StringField, PasswordField, validatorsapp = Flask(__name__)class UserRegisterForm(Form):"""用户注册表单验证"""username = StringField([validators.Length(min=4, max=10), validators.DataRequired()])email = StringField([validators.DataRequired()])password1 = PasswordField([validators.DataRequired(), validators.EqualTo("password2")])password2 = PasswordField([validators.DataRequired()])@app.route('/user/register/', methods=["GET", "POST"])
def user_register():form = UserRegisterForm(request.form)if request.method == "POST" and form.validate():print(form.username.data)print(form.email.data)print(form.password1.data)print(form.password2.data)return "Thank you for your register!"return render_template("register.html")if __name__ == '__main__':app.run()
这里前端的表单是我们自己通过前端标签手写的,我在后端定义了UserRegisterForm类,将类实例化把request.form作为参数传入实例中,validate()方法验证数据格式是否正确,返回True或False。Flask中的WTForms跟Django中的Form功能一样!
转载于:https://blog.51cto.com/daibaiyang119/2046253
Flask之WTForms验证相关推荐
- flask token 登录验证
flask token 登录验证 视频 https://www.youtube.com/watch?v=J5bIPtEbS0Q 代码 #!/usr/bin/env python # -*- encod ...
- Flask之WTForms
简介 WTForms是一个支持多个web框架的form组件,主要用于对用户请求数据进行验证. 安装: pip3 install wtforms 用户登录注册示例 1. 用户登录 当用户登录时候,需要对 ...
- flask实现token验证
from flask import Flask from flask.globals import request from flask.json import jsonify from itsdan ...
- mysql 凭证_如何用mysql验证flask/python中的凭证?
Flask/python登录验证对mysql不起作用,我在搜索google和文档,我在同一件事上看到了一些关于堆栈溢出的问题,但还没有得到回答.在from flask import Flask, re ...
- 简单Flask登录验证
记录一下学习Flask的过程 下面是一个简单的FLask的登录验证代码 from flask import Flask from flask import requestapp = Flask(__n ...
- Flask开发系列之Web表单
Flask开发系列之Web表单 简单示例 from flask import Flask, request, render_templateapp = Flask(__name__) @app.rou ...
- python前端学习-------Flask框架基础(建议收藏)
Flask框架基础 下载并安装Flask框架 Flask基础 第一个Flask应用 开启调试模式 路由 变量规则 构造URL HTTP方法 模板 语法格式 模板变量 控制结构 条件控制语句 `if` ...
- Flask 学习(一)
Flask 初步学习 Flask程序的基本构造 from flask import Flask,render_templateapp = Flask(__name__)@app.route('/') ...
- 偷个懒,公号抠腚早报80%自动化——3.Flask速成大法
简述 在上一节中,我们编写了抓取新闻的爬虫脚本,每天早上八点定时抓取新闻保存到 MySQL数据库中.直接用DataGrip连下数据库,就可以查看爬取到的新闻了.不过, 并不是我们想要的最终形态.我希望 ...
最新文章
- 卷积神经网络(Convolutional Neural Network, CNN)
- 原来 Matplotlib 绘图也可以这么漂亮,这次真的是学习到了!
- C# DllImport的用法(转)
- install-newton部署安装--------计算节点部署安装
- Python+bs4实现爬取小说并下载到本地
- 女人假正经的十三种表现
- 片上总线Wishbone 学习(九)总线周期之单次读操作
- ipv6地址概述——配置ipv6
- 一、回首向来萧瑟处,也无风雨也无晴
- Numpy + Matplotlib 绘制白色画图
- win10安装TeamView 提示rollback framework could not be initialized
- 安卓图像更新学习总结
- cad调了比例因子没反应_「室内设计」大神们都在用的9个CAD制图技巧,你会用几个?...
- 关于对vue-particle-effect-button的使用
- 医学图像分类_腾讯八篇论文入选顶级医学影像会议MICCAI ,涉及病理癌症图像分类等...
- 南昌大学 计算机面试题,南昌大学计算机应用技术专业调剂生复试经验
- 关于MATLAB2019a的三相全控桥整流电路的画法学习
- 怎么用DreamWare新建立一个静态网站的站点
- 洛谷P1827[USACO3.4] 美国血统 American Heritage
- PHP 过滤除中英文以外的所有字符
热门文章
- ES6笔记(4)-- Symbol类型
- MediaPlayer开发全解析
- 黑盒测试 白盒测试 题
- 微软宣布正式开源 Azure IoT Edge 边缘计算服务
- 使用Wisdom RESTClient如何在Linux和Mac上获取测试报告和API文档?
- react开发教程(十)redux结合react
- IntelliJ IDEA自动导入包去除星号(import xxx.*)
- SQL SERVER数据库 “可能发生了架构损坏。请运行DBCC CHECKCATALOG。的错误修复
- error: device not found - waiting for device -
- jboss-as-web-7.0.1.Final 配置 SSL