当前位置: 首页 > 工具软件 > WTForms > 使用案例 >

关于Flask高级_WTForms介绍和基本使用

计泉
2023-12-01

Flask高级_WTForms介绍和基本使用

一.介绍

Flask-WTF是简化了WTForms操作的一个第三方库。WTForms表单 的两个主要功能是验证用户提交数据的合法性以及渲染模板。而 Flask-WTF还包括一些其他的功能:CSRF保护,文件上传等。
这个插件库主要有两个作用:
第一个是做表单验证,将用户提交上来的数据进行验证是否符合系 统要求。
第二个是做模版渲染。 (了解即可)
使用步骤:
  1. 自定义一个表单类,继承自wtforms.Form类。
  2. 定义好需要验证的字段,字段的名字必须和模版中那些需要验证的input标签的name属性值保持一 致。
  3. 在需要验证的字段上,需要指定好具体的数据类型。
  4. 在相关的字段上,指定验证器。
  5. 以后在视图函数中,只需要使用这个表单类的对象,并且把需要验证的数据,也就是request.form 传给这个表单类,再调用表单类对象.validate()方法进行,如果返回True,那么代表用户输入的数 据都是符合格式要求的,Flase则代表用户输入的数据是有问题的。如果验证失败了,那么可以通 过表单类对象.errors来获取具体的错误信息。

二.实例

html:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>注册页面</title>
</head>
<body>
    <form action="/register/" method="post">
        <table>
                <tr>
                    <th>用户名:</th>
                    <td><input type="text"name="uname"></td>
                </tr>
                <tr>
                    <th>密码:</th>
                    <td><input type="password"name="pwd"></td>
                </tr>
                <tr>
                    <th>确认密码:</th>
                    <td><input type="password"name="pwd2"></td>
                </tr>
                <tr>
                    <td></td>
                    <td><input type="submit"value="注册"></td>
                </tr>
        </table>
    </form>
</body>
</html>
py文件:
#coding=utf-8


from flask import Flask,request,render_template
from wtforms import Form,StringField
from wtforms.validators import Length,EqualTo

app = Flask(__name__)

@app.route('/')
def index():
    return 'Hello~'

class registerForm(Form):
    uname = StringField(validators=[Length(min=2,max=9,message='用户名的字符数量在1-9之间')])
    pwd = StringField(validators=[Length(min=2,max=9)])
    pwd2 = StringField(validators=[Length(min=2,max=9),EqualTo('pwd',message='两次输入的密码不一致!!!')])

@app.route('/register/',methods=['GET','POST'])
def register():
    if request.method == 'GET':
        return render_template('register.html')
    else:
        form = registerForm(request.form)
        if form.validate():
            return '验证成功!!!'
        return f'验证失败!!!失败信息:{form.errors}'

if __name__ == '__main__':
    app.run(debug=True)

注:

如果觉得笔记有些问题,麻烦在百忙之中在评论中指正,或提出建议!另外,如果觉得这份笔记对你有所帮助,麻烦动动发财的小手手点一波赞!

 类似资料: