we should set csrf_token like this `app.config[“SECRET_KEY”] = “fajfhaf454dgdghja44”
基本上与django一样
# encoding=utf-8
__author__ = "zhangyue"
from flask import Flask,render_template
from flask_wtf import FlaskForm
from wtforms import StringField, PasswordField,SubmitField
from wtforms.validators import DataRequired, EqualTo
# import flask_wtf
app = Flask(__name__)
app.config["SECRET_KEY"] = "fajfhaf454dgdghja44"
# 定义表单的模型类
class RegisterForm(FlaskForm):
"""自定义的注册表单模型类"""
# DataRequired保证数据必须填写,并且不能为空
username = StringField(label=u"用户名", validators=[DataRequired(u"用户名不能为空")])
password = PasswordField(label=u"密码", validators=[DataRequired(u"密码不能为空")])
repassword = PasswordField(label=u"确认密码", validators=[DataRequired(u"确认密码不能为空"),
EqualTo("password", u"两次密码不一致")])
submit = SubmitField(label=u"提交")
@app.route("/register")
def index():
# 创建一个表单对象
form = RegisterForm()
# 渲染模板
return render_template("register.html",form=form)
if __name__ == '__main__':
app.run(debug=True)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action="" method="post">
{{form.username.label}}
<p>{{form.username}}</p>
{%for msg in form.username.errors%}
<p>{{msg}}</p>
{%endfor%}
{{form.password.label}}
<p>{{form.password}}</p>
{{form.password.errors}}
{{form.repassword.label}}
<p>{{form.repassword}}</p>
{{form.repassword.errors}}
{{form.submit}}
</form>
</body>
</html>