首先引入表单扩展Flask-WTF:

pip install Flask-WTF

使用Flask-WTF扩展可以验证后端接受到的信息,防止恶意攻击。
WTForms支持的HTML标准字段

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

WTForms常用验证函数如下:

验证函数 说明
DataRequired 确保字段中有数据
EqualTo 比较两个字段的值,常用于比较两次密码输入
Length 验证输入的字符串长度
NumberRange 验证输入的值在数字范围中
URL 验证URL
AnyOf 验证输入值在可选列表中
Noneof 验证输入值不在可选列表中

注:使用Flask-WTF需要配置参数SECRET_KEY,CSRF_ENABLED是为了CSRF(跨站请求伪造)保护,SECRET_KEY用来生成加密令牌,当CSRF激活的时候,该设置会根据设置的密钥生成加密令牌。
所用程序代码:

from flask import Flask,render_template
from flask_wtf import FlaskForm
from wtforms import StringField,PasswordField,SubmitField
from wtforms.validators import DataRequired,EqualToapp = Flask(__name__)# 配置参数SECRET_KEY
app.config["SECRET_KEY"] = "ASDHJAVDHJASDVASYJDV"# 定义表单的模型类
class RegisterFrom(FlaskForm):"""自定义的注册表单模型类"""# StringField,PasswordField的参数分别是 模块名字,对应验证器# DataRequired 保证数据必须填写,并且不能为空user_name = StringField(label = u"用户名",validators=[DataRequired(u"用户名不能为空")])user_password = PasswordField(label=u"密码",validators=[DataRequired(u"密码不能为空")])same_password = PasswordField(label=u"确认密码", validators=[DataRequired(u"密码不能为空"),EqualTo("user_password",u"两次密码不一致")])submit = SubmitField(label="提交")@app.route("/register")
def index():form = RegisterFrom()return render_template("register.html",form = form)if __name__ == '__main__':app.run(debug = True,port=8000)

其中在HTML中有着iffor的控制语句,其格式分别对应为:
if语句:
{% if % } {% endif %}
for语句:
{% for item in samples %} {% endfor %}
对应的视窗文件编写:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body><form method="post">{{ form.user_name.label }}<p>{{form.user_name}}</p>{% for msg in form.user_name.errors %}<p>{{msg}}</p>{% endfor %}{{ form.user_password.label }}<p>{{form.user_password}}</p>{% for msg in form.user_password.errors %}<p>{{msg}}</p>{% endfor %}{{ form.same_password.label }}<p>{{form.same_password}}</p>{% for msg in form.same_password.errors %}<p>{{msg}}</p>{% endfor %}{{form.submit}}</form>
</body>
</html>

最终呈现的结果为:

参数类型能提前进行设定,输入的参数会进行校验,当输入的参数不符合设定的参数类型时能进行报错。
以上就是flask创建表单模型类与模板使用的基本方法,有疑问的欢迎评论或私信博主啊。

Flask——创建表单模型类与模板使用相关推荐

  1. Flask后端笔记(三)Jinja2模板、过滤器、表单、宏、模板继承、包含

    Flask后端笔记 Jinja2模板 基本流程 变量 过滤器 字符串过滤器 支持链式使用过滤器 列表过滤器 自定义过滤器 表单 不使用Flask-WTF扩展时,表单需要自己处理 使用Flask-WTF ...

  2. element手机验证格式_Laravel 自定义封装表单验证类

    Laravel版本6.x 场景:为添加或者更新用户的时候自动验证表单 创建表单请求 使用 Artisan 命令 make:request 来创建表单请求类: php artisan make:requ ...

  3. 如何通过云模板创建表单?丨三叠云教程

    三叠云官网https://www.sandieyun.com/ 1. 简介 1.1 功能简介 云模板中心是表单的共享中心,里面承载着众多三叠云接入企业所提供的优秀成熟的表单案例,内容详尽,范围涵盖各行 ...

  4. Flask Web表单

    title: flask学习笔记 subtitle: 3. flask Web表单 date: 2018-12-14 10:17:28 --- Web表单 HTML表单是用户和web站点或应用程序之间 ...

  5. 3YAdmin-专注通用权限控制与表单的后台管理系统模板

    3YAdmin基于React+Antd构建.GitHub搜索React+Antd+Admin出来的结果没有上百也有几十个,为什么还要写这个东西呢? 一个后台管理系统的核心我认为应该是权限控制,表单以及 ...

  6. angular js创建表单_如何优雅的使用 Angular 表单验证

    随便说说,这一节可以跳过 去年参加 ngChine 2018 杭州开发者大会的时候记得有人问我: Worktile 是什么时候开始使用 Angular 的,我说是今年(2018年) 3 月份开始在新模 ...

  7. webform快速创建表单内容文件--oracle 数据库

    使用方法 前台页面这样写就足够了 <form class="stdform" runat="server"><div id="fie ...

  8. JavaFX官方教程(五)之在JavaFX中创建表单

    翻译自  在JavaFX中创建表单 在开发应用程序时,创建表单是一项常见活动.本教程将向您介绍屏幕布局的基础知识,如何将控件添加到布局窗格以及如何创建输入事件. 在本教程中,您将使用JavaFX构建如 ...

  9. dedecms 自定义表单html,dedecms自定义表单和自定义表单如何用自己模板教程

    dedecms自定义表单和自定义表单如何用自己模板视频教程,无声,但有具体的操作和演示的模板,以及详细的说明. 在线预约一个表单,后台可以直接实现自定义表单功能 注意看有个 表单的id 其他的不用管, ...

最新文章

  1. 苏宁V购 不为拯救 只求改变
  2. Messages 贪心,期望,概率,模拟(2000)
  3. 在Linux上编写并运行Python文件
  4. 博士申请 | 纽约州立大学布法罗分校招收ML/AI方向全奖博士生
  5. vue 初始化方法_前端发展方向指南—Vue源码初始化
  6. Oracle data type number
  7. c语言mc协议,easymc - C语言开发的简易消息通道库
  8. Git学习总结(25)——Git 常用的分支开发模式及规范总结
  9. Elasticsearch--进阶-term_keyword查询---全文检索引擎ElasticSearch工作笔记015
  10. 设计模式学习笔记--Flyweight享元模式
  11. html本地修改浏览器自动更新,更改html代码后网页不更新
  12. Unity之FBX文件操作学习笔记(一)
  13. 合上电脑盖时,电脑断网-原因及解决方法
  14. DDS产生双频正弦波及叠加
  15. 城市简码_WordPress的自定义简码
  16. 声纹识别demo_语音识别、声纹识别的区别及测试
  17. [渝粤教育] 九江学院 药理学 参考 资料
  18. docker离线安装与卸载
  19. Benchmark分析[4]: parsec
  20. C# 程序创建word文件与表格

热门文章

  1. 电子企业MES管理系统解决方案
  2. NVDIA Maxine虚拟背景视频效果API说明
  3. STM32F1与STM32CubeIDE快速入门-ADC轮询方式实现PWM调光器
  4. 蓝牙定位--多点质心定位
  5. 学习英语 考托福 个人失败经验
  6. 坐标求交点java_java计算两条线段交点
  7. uniapp tab 栏选项卡与内容区域联动
  8. 成都市等市、州2009年《工程量清单计价定额》人工费调整批复〔2017〕23
  9. apt-get 软件源文件格式以及ubuntu 18.04更换阿里源
  10. Polyspace介绍及入门操作