wtforms表单验证
Flask-WTF是简化了WTForms操作的一个第三方库。WTForms表单的两个主要功能是验证用户提交数据的合法性以及渲染模板。当然还包括一些其他的功能:CSRF保护,文件上传等。安装Flask-WTF默认也会安装WTForms,因此使用以下命令来安装Flask-WTF:
pip install flask-wtf
单词翻译
validate—验证,
validators—验证器
一、表单验证:
安装完Flask-WTF后。来看下第一个功能,就是用表单来做数据验证,现在有一个forms.py文件,然后在里面创建一个RegistForm的注册验证表单:
import wtforms
from wtforms.validators import length,email
class LoginForm(wtforms.Form):
email = wtforms.StringField(validators=[length(min=5,max=20),email()])
password = wtforms.StringField(validators=[length(min=6,max=20)])
在这个里面指定了需要上传的参数,并且指定了验证器,比如email的长度应该在4-25之间。email必须要满足邮箱的格式。password长度必须在6-20之间,并且应该和confirm相等才能通过验证。
写完表单后,接下来就是login.html文件:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>登录</title>
</head>
<body>
<form action="/login" method="post">
<table>
<tbody>
<tr>
<td>邮箱:</td>
<td>
<input type="text" name="email">
</td>
</tr>
<tr>
<td>密码:</td>
<td>
<input type="text" name="password">
</td>
</tr>
<tr>
<td></td>
<td><button>登录</button></td>
</tr>
</tbody>
</table>
</form>
</body>
</html>
再来看视图函数login:
自己写的
from flask import Flask, request, render_template
from forms import LoginForm
@app.route('/login',methods=['GET','POST'])
def login():
if request.method =='GET':
return render_template("login.html")
else:
form = LoginForm(request.form)
if form.validate():
return "登录成功!"
else:
return "密码或邮箱输入错误"
LoginForm传递的是request.form进去进行初始化,并且判断form.validate会返回用户提交的数据是否满足表单的验证。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/61405.html