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

一周学会Flask3 Python Web开发-Flask3之表单处理WTForms安装与定义WTForms表单类

锋哥原创的Flask3  Python Web开发 Flask3视频教程:

2025版 Flask3 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili

我们平时开发项目,都会用到表单,编写表单,提交表单,验证表单,如果有错误,还得搞个表单报错提示。如果我们用Flask3扩展flask-wtf提供的WTForms编写表单,流程很简化很多。

安装WTForms

扩展Flask-WTF集成了WTForms,使用它可以在Flask中更方便地使用WTForms。Flask-WTF将表单数据解析、CSRF保护、文件上传等功能与Flask集成,另外还附加了reCAPTCHA支持。

我们首先安装下WTForms,终端输入:

pip install flask-wtf -i https://pypi.tuna.tsinghua.edu.cn/simple

定义WTForms表单类

我们定义表单类,继承FlaskForm。一个表单由若干个输人字段组成,这些字段分别用表单类的类属性来表示(字段即Field,你可以简单理解为表单内的输入框、按钮等部件)。下面定义了一个LoginForm类,最终会生成我们在前面定义的HTML表单:

class LoginForm(FlaskForm):
    username = StringField('用户名')
    password = PasswordField('密码')
    remember = BooleanField("记住我")
    submit = SubmitField("登录")

常用的WTForms表单字段:

字段类说明对应的HTML
BooleanField复选框,值会被处理为True或False<input type="checkbox">
DateField文本字段,值会被处理为datetime.date对象<input type="text">
DateTimeField文本字段,值会被处理为datetime.datetime对象<input type="text">
FileField文件上传字段<input type="file">
FloatField浮点数字段,值会被处理为浮点型<input type="text">
IntegerField整数字段,值会被处理为整型<input type="text">
RadioField一组单选按钮<input type="radio">
SelectField下拉列表<select><option></option><select>
SelectMultipleField多选下拉列表<select multiple><option></option></select>
SubmitField提交按钮<input type="submit">
StringField文本字段<input typc="text">
HiddenField隐藏文本字段<input type="hidden">
PasswordField密码文本字段<input type="password">
TextAreaField多行文本字段<textarea></textarea>

常用表单字段类属性:

参数说明
label字段标签<label>的值,也就是渲染后显示在输人字段前的文字
render_kw一个字典,用来设置对应的HTML <input>标签的属性,比如传入{'placeholder: '请输入搜索关键字'},渲染后的HTML代码会将<input>标签的placeholder属性设为‘请输入搜索关键字’
validators一个列表,包含一系列验证器,会在表单提交后被逐一调用验证表单数据
default字符串或可调用对象,用来为表单字段设置默认值

相关文章:

  • 【向量数据库Weaviate】 和Elasticsearch的区别
  • 0012SSM+VUE学生考勤管理系统的设计与实现程序+文档
  • PGlite:浏览器中运行的PostgreSQL
  • ‌Vetur‌ 与 Vue-Official 的区别
  • Leetcode 316 去除重复字母
  • 第10篇:文件IO与数据持久化(下)(JSON、二进制文件)
  • 塔能物联运维:城市照明运维成本的破局之道
  • Python:全方位赋能,开启科技前沿无限可能
  • win32汇编环境,窗口程序中使控件子类化的示例一
  • 使用Linux服务器搭建。
  • (十 九)趣学设计模式 之 中介者模式!
  • Linux IO编程核心要点解析:文件、流与缓冲区实战指南
  • 多空狙击线-新指标-图文教程,多空分界买点以及强弱操盘技术教程,通达信炒股软件指标
  • 从DNS到TCP:DNS解析流程和浏览器输入域名访问流程
  • QKV 注意力机制在Transformer架构中的作用,和卷积在卷积神经网络中的地位,有哪些相似之处?
  • 使用vue3+element plus 的table自制的穿梭框(支持多列数据)
  • 【大厂AI实践】清华:清华古典诗歌自动生成系统“九歌”的算法
  • Linux下安装VS Code
  • HOW - 在Windows浏览器中模拟MacOS的滚动条
  • 栈和队列的模拟实现
  • 网站风格怎么写/推广平台的方法
  • 重庆公司核名在哪个网站/东莞网站设计排行榜
  • 财佰通突然做网站维护/百度网址大全 官网首页
  • 天津商城网站建设公司/互联网推广方案
  • 常州网站公司/竞价账户托管公司哪家好
  • 微信小程序报价单/张北网站seo