当前位置: 首页 > 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字符串或可调用对象,用来为表单字段设置默认值
http://www.lryc.cn/news/546098.html

相关文章:

  • Git基本命令索引
  • 【论文阅读笔记】SL-YOLO(2025/1/13) | 小目标检测 | HEPAN、C2fDCB轻量化模块
  • MySQL SQL 优化专题
  • Mac上安装Pycharm
  • flask框架基础入门学习教程
  • Qt显示一个hello world
  • MySQL快速搭建主从复制
  • 力扣-动态规划-674 最长连续递增序列
  • 在笔记本电脑上用DeepSeek搭建个人知识库
  • leetcode 94. 二叉树的中序遍历
  • YOLOv12:目标检测新时代的破局者
  • 基于OFDR的层压陆相页岩油储层中非对称裂缝群传播的分布式光纤监测
  • Linux虚拟机网络配置-桥接网络配置
  • 软开经验总结
  • 关于虚拟环境中遇到的bug
  • C 语言在微软平台:经典与创新的交融
  • 大数据测试中,数据仓库表类型有哪些?
  • 基于开源库编写MQTT通讯
  • Kafka Connect连接器的全生命周期:
  • 磁盘空间不足|如何安全清理以释放磁盘空间(开源+节流)
  • DeepSeek vs Grok vs ChatGPT:大模型三强争霸,谁将引领AI未来?
  • 2025国家护网HVV高频面试题总结来了04(题目+回答)
  • 我的AI工具箱Tauri版-通用音频转文本
  • Vue.js计算属性
  • 品佳诚邀您参加 3/12『英飞凌汽车方案引领智能座舱新纪元』在线研讨会
  • 科普|无人机专业术语
  • Tauri跨平台开发问题及解决方案深度解析(React版)
  • 基于单片机和Wifi技术的智能台灯设计
  • ds回答-开源llm应用开发平台
  • 【量化策略】均值回归策略