当前位置: 首页 > article >正文

Flask 入门8:Web 表单

Flask-WTF 扩展可以把处理 Web 表单,这个扩展对独立的
WTForms 包进行了包装,方便集成到Flask应用中。

1. 配置

与其他多数扩展不同,Flask-WTF 无须在应用层初始化,但是它要求应用配置一个密钥。密钥是一个由随机字符构成的唯一字符串,通过加密或签名以不同的方式提升应用的安全性。Flask 使用这个密钥保护用户会话,以防被篡改。

配置 Flask-WTF:

app = Flask(_name_)
app.config['SECRET_KEY'] = 'hard to guess string'

2. 表单类

使用 Flask-WTF 时,在服务器端,每个 Web 表单都由一个继承自 FlaskForm 的类表示。这个类定义表单中的一个字段,每个字段都用对象表示。字段对象可附属一个或多个验证函数。
验证函数用于验证用户提交的数据是否有效。

定义表单类:

from flask_wtf import FlaskForm 
from wtforms import StringField, SubmitField 
from wtforms.validators import DataRequired 

class NameForm(FlaskForm):
	name = StringField('What is your name?', validators=[DataRequired()])
	submit = SubmitField('Submit')

验证函数 DataRequired() 确保提交的字段内容不为空。

WTForms支持的HTML标准字段:

字段类型说明
BooleanField复选框,值为 True 和 False
DateField文本字段,值为 datetime.data 格式
DateTimeField文本字段,值为 datetime.datetime 格式
DecimalField文本字段,值为 decimal.Decimal
FileField文件上传字段
HiddenField隐藏的文本字段
MultipleField多文件上传字段
FieldList一组指定类型的字段
FloatField文本字段,值为浮点数
FormField把一个表单作为字段嵌入另一个表单
IntegerField文本字段,值为整数
PasswordField密码文本字段
RadioField一组单选按钮
SelectField下拉列表
SelectMultipleField下拉列表,可选择多个值
SubmitField表单提交按钮
StringField文本字段
TextAreaField多行文本字段

WTForms验证函数:

验证函数说明
DataRequired确保转换类型后字段中有数据
Email验证电子邮件地址
EqulTo比较两个字段的值;常用于要求输入两次密码进行确认的情况
InputRequired确保转换类型前字段中有数据
IPAddress验证 IPv4 网络地址
Length验证输入字符串的长度
MacAddress验证 MAC 地址
NumberRange验证输入的值在数字范围之内
Optional允许字段中没有输入,将跳过其他验证函数
Regexp使用正则表达式验证输入值
URL验证 URL
UUID验证 UUID
AnyOf确保输入值在一组可能的值中
NoneOf确保输入值不在一组可能的值中

3. 把表单渲染成HTML


http://www.kler.cn/news/233346.html

相关文章:

  • 【前端web入门第四天】03 显示模式+综合案例热词与banner效果
  • 使用navicat导出mysql离线数据后,再导入doris的方案
  • 【51单片机Keil+Proteus8.9】门锁控制电路
  • 法国实习面试——计算机相关专业词汇
  • ElasticSearch之倒排索引
  • 车载测试中:如何处理 bug
  • SparkJDBC读写数据库实战
  • c#表达式树(MemberInitExpression)成员初始化表达式
  • 工厂方法模式(Factory Method Pattern)
  • 【开源计算机视觉库OpencV详解——超详细】
  • 【Scala】 2. 函数
  • containerd中文翻译系列(十)镜像验证
  • 《PCI Express体系结构导读》随记 —— 第II篇 第4章 PCIe总线概述(11)
  • Python学习路线 - Python高阶技巧 - PySpark案例实战
  • Javaweb之SpringBootWeb案例之异常处理功能的详细解析
  • C#中的浅度和深度复制(C#如何复制一个对象)
  • 深度学习技巧应用36-深度学习模型训练中的超参数调优指南大全,总结相关问题与答案
  • UI自动化之Poco常用断言方式
  • RCE(命令执行)知识点总结最详细
  • [day0] 借着“ai春晚”开个场
  • 单片机学习笔记---LED点阵屏显示图形动画
  • 从零开发短视频电商 Tesseract OCR 的 Java 拓展库 javacpp-presets
  • 计算机网络(第六版)复习提纲25
  • Windows 远程桌面提示没有远程桌面授权服务器可以提供许可证
  • Unity3D实现项目限制功能(使用次数限制和时间限制)
  • 【C++】引用与内联
  • 【Flink】SQL-CLIENT中出现 Could not find any factory for identifier ‘kafka‘
  • 5 scala的函数式编程简介
  • 【QT】Graphics View绘图架构
  • 【Redis】深入理解 Redis 常用数据类型源码及底层实现(3.详解String数据结构)