好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

Flask之Flask-WTF的邮箱验证

在明确了Flask-WTF是用于表单的操作后,我们可以用它进行数据的验证。那么这种方法是可以应用于邮箱的验证中的,想必大家还没有接触过。不过我们在正式使用前,是需要做一个命令的扩展,这点大家不要忽略了。下面我们就Flask-WTF邮箱验证的方法,带来详细的介绍。

1、使用Flask-WTF之前,需要安装一个扩展命令

pip?install?flask_wtf?email_validator

2、模块email_validator是为了代码中邮箱验证而准备

3、创建文件run.py

from?flask?import?Flask,?render_template,?request
from?flask_wtf?import?FlaskForm
from?wtforms?import?SubmitField,?StringField,?PasswordField
from?wtforms.validators?import?DataRequired,?EqualTo,?Length,?Email
?
app?=?Flask(__name__)
app.secret_key?=?"xxx"
?
?
#?使用WTF实现表单,自定义一个表单类
class?RegisterForm(FlaskForm):
????username?=?StringField(label='用户名:?',?validators=[DataRequired()])
????email?=?StringField(label='邮箱:?',?validators=[DataRequired(),?Email(message='邮箱格式错误')])
????password?=?PasswordField(label='密码:?',?validators=[DataRequired(),?Length(6,?16,?message='密码格式错误')])
????password2?=?PasswordField(label='确认密码:?',?validators=[DataRequired(),?Length(6,?16,?message='密码格式错误'),
?????????????????????????????????????????????????????????EqualTo('password',?message='密码不一致')])
????submit?=?SubmitField(label='注册')
?
?
@app.route('/',?methods=['GEt',?'POST'])
def?login():
????
????register_form?=?RegisterForm()
?
????if?request.method?==?'POST':
????????if?register_form.validate_on_submit():
????????????这里默认会进行csrf验证
????????????username?=?request.form.get('username')
????????????email?=?request.form.get('email')
????????????password?=?request.form.get('password')
????????????password2?=?request.form.get('password2')
?
????????????if?username?==?'xgx'?and?password?==?password2?and?email?==?'test@gmail测试数据':
????????????????#?进入这里就表示表单验证成功
????????????????return?'Register?success,?username:?{},?email:?{},?password:?{}'.format(username,?email,?password)
????????????else:
????????????????return?'Error'
????????else:
????????????return?'Invalid'
?
????#?把实例化后的register_form传入到页面register.html中
????return?render_template('register.html',?form=register_form)
?
?
if?__name__?==?'__main__':
????app.run(debug=True)

4、在templates文件夹下新建register.html,文件内容为

<!DOCTYPE?html>
<html>
<head>
????<meta?charset="UTF-8">
????<title>Register</title>
</head>
<body>
?
????<form?method="post">
????????{{?form.csrf_token()?}}
????????{{?form.username.label?}}?{{?form.username?}}?<br>
????????{{?form.email.label?}}?{{?form.email??}}?<br>
????????{{?form.password.label?}}?{{?form.password?}}?<br>
????????{{?form.password2.label?}}?{{?form.password2?}}?<br>
????????{{?form.submit?}}
????</form>
?
</body>
</html>

启动项目后,访问http://127.0.0.1:5000,按照表单验证方法的要求填写,就可以完成注册

以上就是Flask之Flask-WTF邮箱验证的方法,虽然看起来步骤比较繁琐,大家可以在正式动手前,反复阅读整个过程,相信已经有不少小伙伴成功完成邮箱的验证啦。

查看更多关于Flask之Flask-WTF的邮箱验证的详细内容...

  阅读:28次