flask_wtf 表单

forms.py

1
2
3
4
5
6
7
8
9
from flask_wtf import FlaskForm
from wtforms import StringField, PasswordField, BooleanField, SubmitField
from wtforms.validators import length, email, DataRequired

class LoginForm(FlaskForm):
username = StringField('Username', validators=[DataRequired()])
password = PasswordField('Password', validators=[DataRequired(), length(min=6, max=20)])
remember = BooleanField('Remember me')
submit = SubmitField('Log in')

视图函数

1
2
3
4
5
6
7
8
9
10
11
@app.route("/test", methods=["GET", "POST"])
def test():
form = LoginForm()
if request.method == "POST":
print(form.data)
return "success"
else:
content = {
"form": form
}
return render_template("test.html", **content)

html

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form method="post" action="/test">
{{ form.csrf_token }}
{{ form.username.label }}<br/>{{ form.username }}<br/>
{{ form.password.label }}<br/>{{ form.password }}<br/>
{{ form.remember }}{{ form.remember.label }}<br/>
{{ form.submit }}<br/>
</form>
</body>
</html>