Flask高级_WTForms介绍和基本使用
一.介绍
Flask-WTF是简化了WTForms操作的一个第三方库。WTForms表单 的两个主要功能是验证用户提交数据的合法性以及渲染模板。而 Flask-WTF还包括一些其他的功能:CSRF保护,文件上传等。
这个插件库主要有两个作用:
第一个是做表单验证,将用户提交上来的数据进行验证是否符合系 统要求。
第二个是做模版渲染。 (了解即可)
使用步骤:
-
自定义一个表单类,继承自wtforms.Form类。
-
定义好需要验证的字段,字段的名字必须和模版中那些需要验证的input标签的name属性值保持一 致。
-
在需要验证的字段上,需要指定好具体的数据类型。
-
在相关的字段上,指定验证器。
-
以后在视图函数中,只需要使用这个表单类的对象,并且把需要验证的数据,也就是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)
注:
如果觉得笔记有些问题,麻烦在百忙之中在评论中指正,或提出建议!另外,如果觉得这份笔记对你有所帮助,麻烦动动发财的小手手点一波赞!