Flask-WTF
表单处理的扩展库,提供了CSRF、字段校验等功能,使⽤⾮常⽅便
安装: pip install flask-wtf
注册表单类
from flask_wtf import FlaskForm # 导⼊表单基类
from wtforms import StringField,PasswordField,SubmitField
from wtforms.validators import DataRequired,Length,EqualTo,Email
# 自定义表单注册类
class Register(FlaskForm):
username = StringField() # 用户名
password = PasswordField() # 密码
pwdagain = PasswordField() # 重复密码
email = EmailField(validators=[Email("邮箱格式错误")])
# wtforms.validators中的Regexp类可以使用正则表达式
phonenum = StringField(validators=[Regexp(r'^(13\d|14[5|7]|15\d|166|17[3|6|7]|18\d)\d{8}$')])
添加视图函数,创建表单对象,并渲染模板⽂件
from form import Register # 导入自定义的表单注册类
@app.route('/register/', methods=['GET', 'POST'])
def register():
form = Register() # 实例化表单类
if request.method == 'POST':
# 这个⽅法是实现表单校验功能的 csrf,数据正确性 都通过了 则为真 否则为假
if form.validate_on_submit():
# print(request.form)
print(form.username) #拿到username的整个标签
print(form.username.data) #取出username⾥⾯的value值
return '数据提交成功'
return render_template(('register.html', **locals())
原生渲染表单
<!DOCTYPE html>
<html lang="en"> <head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h2>flask-wtf的表单类</h2>
<form action=