IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Flask-WTF的使用 -> 正文阅读

[Python知识库]Flask-WTF的使用

WTForms是一个支持多个web框架的form组件,主要用于对用户请求数据进行验证。当网站中需要用到表单时,WTForms变得很有效。应该把表单定义为类,作为单独的一个模块。

烧瓶-WTF — 烧瓶-WTF 文档 (1.0.x) (flask-wtf.readthedocs.io)icon-default.png?t=M85Bhttps://flask-wtf.readthedocs.io/en/1.0.x/

安装

pip install wtforms

创建表单

通常是创建一个Form的子类,表单的中的字段作为类的属性,如:

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

class MyForm(FlaskForm):
    name = StringField('name', validators=[DataRequired()])

Form的主要属性:

  • data:字典类型,包括每一个字段的数据。如果需要频繁访问字段值,可以使用form.<field>.data进行访问
  • errors:字典类型,包括每一个字段的错误信息。

?Form的主要字段类型:

  • BooleanField
    • ?复选框,值为True和False
  • DateField
    • ?文本字段,值为datetime.date格式
    • 如:YYYY-MM-DD

DateTimeField?

  • ?文本字段,值为datetime.datetime格式
    • ?如:YYYY-MM-DD HH:MM:SS
  • DecimalField
    • ?文本字段,值为decimal.Decimal
  • FileField
    • ?文件上传字段
  • FloatField
    • ?文本字段,值为浮点数
  • FormField
    • ?把表单作为字段嵌入另一个表单
  • HiddenField
    • ?隐藏文本字段
  • IntegerField
    • ?文本字段,值为整数
  • PasswordField
    • ?密码文本字段
  • RadioField
    • ?一组单选框
  • SelectField
    • ?下拉列表
    • choices参数表示下列的内容,需要是一个列表,列表的每一项是一个元组,如:[(0,'男'),(1,'女')]。
    • coerce参数表示实际选择的内容格式。一般为int
  • SelectMultipleField
    • ?下拉列表,可选择多个值
    • 参数与SelectField相同
  • StringField
    • ?文本字段
  • SubmitField
    • ?表单提交按钮
  • TextAreaField
    • ?多行文本字段
  • TextField.
    • ?文本域字段
  • ?RecaptchaField
    • ?验证码字段

以上字段中都有两个参数,第一个为label,表示这个表单的标签,第二个是validators,是一个列表,表示验证器。

在视图处理程序中验证请求

@app.route('/submit', methods=['GET', 'POST'])
def submit():
    form = MyForm()
    if form.validate_on_submit():
        return redirect('/success')
    return render_template('submit.html', form=form)

?当form.validate_on_submit()返回True时,则表示验证失败。

flask wtforms 常用验证器:?

  • Email: 验证上传的数据是否为邮箱
  • EqualTo:验证上传的数据是否和另外一个字段相等,常用的就是密码和确认密码两个字段是否相等。
  • InputRequired:原始数据的验证。如果不是特说情况,应该使用InutRequired。
  • Length: 长度限制,有min 和max两个值进行限制。
  • NumberRange:数字区间, 有min和max两个值限制, 荣国处在两个数字之间满足。
  • Regexp:自定义正则表达式。
  • URL:必须是URL形式。
  • UUID:验证UUID
from wtforms import Form, StringField, IntegerField
from wtforms.validators import (Email, EqualTo, InputRequired, Length, NumberRange, Regexp, URL, UUID,ValidationError)

class LoginForm(Form):
    email = StringField(validators=[Email()])
    username = StringField(validators=[InputRequired, Length(min=3, max=15)])
    age = IntegerField(validators=[NumberRange(1,150)])
    phont = StringField(validators=[Regexp(r'1[3,5,6,7,8]\d{9}')])
    homeurl = StringField(validators=[URL()])
    uuid = StringField(validators=[UUID()])
  	captcha = StringField(validators=[Length(6, 6)])

自定义验证器

from flask_wtf import FlaskForm
from wtforms.validators import ValidationError
from wtforms import StringField

class LoginForm(FlaskForm):
    name = StringField()

    # 自定义验证器,validate_(写需要验证的字段名captcha)
    def validate_name(self, field):
        # 在ValidationError中填写错误提示信息, 错误信息可通过 form.errors 获取到
        if not field.data:
            raise ValidationError('请输入名字')

如果验证失败,抛出ValidationError错误即可。

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-09-24 20:53:28  更:2022-09-24 20:53:47 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 9:37:42-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码