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

一周学会Flask3 Python Web开发-WTForms表单验证

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

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

我们可以通过WTForms表单类属性的validators属性来实现表单验证。

常用的WTForms验证器

验证器说明
DataRequired(message=None)验证数据是否有效
Email(message=None)验证Email地址
EqualTo(fieldname, message=None)验证两个字段值是否相同
InputRequired(message=None)验证是否有数据
Length(min=-1 , max=-1 , message=None)验证输入值长度是否在给定范围内
NumberRange(min=None, max=None, message=None)验证输入数字是否在给定范围内
Optional(strip_whitespace=True)允许输入值为空,并跳过其他验证
Regexp(regex, flags=O, message=None)使用正则表达式验证输入值
URL(require_tld=True, message=None)验证URL
AnyOf(values, message=None, values_formatter=None)确保输入值在可选值列表中
NoneOf(values, message=None, values_formatter=None)确保输入值不在可选值列表中

改写LoginForm实例:

class LoginForm(FlaskForm):
    username = StringField('用户名', render_kw={'placeholder': '请输入用户名'},
                           validators=[DataRequired()])
    password = PasswordField('密码', render_kw={'placeholder': '请输入用户名'},
                             validators=[DataRequired(), Length(1, 6)])
    remember = BooleanField("记住我")
    submit = SubmitField("登录")

如果验证没通过,点击登录按钮会有提示:

后端视图里通过validate()方法来验证:

@user_bp.route('/login', methods=['GET', 'POST'])
def login():
    print(request.method)
    loginForm = LoginForm()
    print("标签:", loginForm.username.label)
    print("表单", loginForm.username)
    if request.method == 'GET':
        return render_template('login.html', form=loginForm)
    else:
        if loginForm.validate():
            username = loginForm.username.data
            password = loginForm.password.data
            print(username, password)
        return 'ok'

相关文章:

  • Libgdx游戏开发系列教程(4)——显示中文文字
  • PARETO PROMPT OPTIMIZATION
  • 蓝桥杯每日一题:第一周周四哞叫时间
  • 基于 LeNet 网络的 MNIST 数据集图像分类
  • MicroServer Gen8再玩之三 OCP万兆光口+12G阵列卡
  • PPT 小黑第29套
  • C/C++中函数指针和指针函数的原理和区别是什么,分别通过用例说明。
  • [Python学习日记-85] 并发编程之多进程 —— Process 类、join 方法、僵尸进程与孤儿进程
  • 两个四元数叉乘与姿态旋转的关系
  • 抽奖系统(从0-1)(上)
  • node版本切换工具【nvm】
  • 大数据学习(55)-BI工具数据分析的使用
  • python19-if和match的美
  • Springboot 注入方式
  • 让单链表不再云里雾里
  • SPI驱动(一) -- SPI协议
  • 服务是否设置为开机自启动
  • 嵌入式开发:磁通门传感器开发(5):测量磁场的方法和传感器
  • Ollama存在安全风险的情况通报及解决方案
  • 【Resis实战分析】Redis问题导致页面timeout知识点分析
  • 中国海员建设工会网站/长沙网站开发制作
  • 上传的网站打不开/宁波网络推广软件
  • vue做门户网站/西安做网站哪家好
  • 净化科技网站建设/佛山做网站推广的公司
  • 如何做竞价网站数据监控/农产品营销方案
  • 订阅号登陆平台/网站优化seo