Python学习笔记--Flask补充(一)

WTForms验证

Flask-WTF

Flask-WTF是简化了WTForms操作的一个第三方库。WTForms表单的两个主要功能是验证用户提交数据的合法性以及渲染模板。当然还包括一些其他的功能:CSRF保护,文件上传等。

安装方式

安装Flask-WTF会自动安装WTForms

pip install flask-wtf

先来创建模板, 用于测试下面各项验证

在这里插入代码片

表单验证

在注册账号时, 会经常对用户名和密码做些长度的验证以及再次输入密码等验证.

然后建立一个py文件, 用于表单验证并将验证结果返回到视图文件中.
表单验证form.py

from wtforms import Form, StringField, validators
from wtforms.validators import Length, EqualTo


# 表单验证
class RegistForm(Form):
    username = StringField(validators=[Length(min=3, max=10, message="用户名长度不正确")])
    password = StringField(validators=[Length(min=3, max=10, message="密码长度不正确")])
    password_repate = StringField(validators=[EqualTo("password", message="两次密码不一致")])
  • 做验证的类需要继承Form
  • Length: 验证长度
  • EqualTo: 验证指定字段的值是否相同
  • message: 自定义输出错误信息

在视图文件中, 只需要导入表单验证文件,并对返回结果做判断即可

from flask import Flask, request,render_template
from forms import RegistForm
app = Flask(__name__)


@app.route("/")
def index():
    return "首页"


@app.route("/regist/", methods=["GET", "POST"])
def regist():
    if request.method == "GET":
        return render_template("regist.html")
    else:
        # 将接收到的post数据传入表单验证中
        form = RegistForm(request.form)
        if form.validate():  # 判断是否验证通过
            return "成功"
        else:
            print(form.errors)  # 输出错误原因
            return "失败"


if __name__ == '__main__':
    app.run(debug=True)
  • 后续不管做什么验证, 视图文件都只需要根据验证结果判断并返回相应的内容即可, 不需要在视图文件中写太多验证的代码.

验证邮箱格式

验证邮箱格式需要用到Email模块
另外,在使用前还需要安装email_validator, 它需要依赖这个模块才能使用

...
from wtforms.validators import Email  # 验证邮箱格式

...
...

class LoginForm(Form):
    email = StringField(validators=[Email(message="邮箱格式不正确")])

限制数字为整数以及验证范围内的数字

IntegerField: 限制传入的字段都必须为整数
NumberRange: 判断一个数字是否在指定的范围内.

...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值