Skip to content

Commit 99aa7ab

Browse files
committed
add flask-10-wtf
1 parent 0c2c4b4 commit 99aa7ab

File tree

4 files changed

+54
-57
lines changed

4 files changed

+54
-57
lines changed

Flask-10-wtf/run.py

Lines changed: 33 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,60 +1,56 @@
1-
from flask import Flask, render_template, request, flash
1+
from flask import Flask, render_template, request
22

3-
app = Flask(__name__)
4-
5-
# 导入tf扩展的表单类
3+
# 导入wtf扩展的表单类
64
from flask_wtf import FlaskForm
75

8-
# 导 入自定义表单需要的字段
6+
# 导入自定义表单需要的字段
97
from wtforms import SubmitField, StringField, PasswordField
108

119
# 导入wtf扩展提供的表单验证
12-
from wtforms.validators import DataRequired, EqualTo
10+
from wtforms.validators import DataRequired, EqualTo, Length, Email
11+
12+
app = Flask(__name__)
13+
app.secret_key = "xxx"
1314

1415

1516
# 自定义表单类、文本字段、密码字段、提交按钮
1617
# 使用WTF实现表单 需要自定义一个表单类
17-
class LoginForm(FlaskForm):
18+
class RegisterForm(FlaskForm):
1819
# StringField/PasswordField是区别文本框类型, 用户名/密码是指定label值, validators 就是指明要验证哪些项
19-
username = StringField('用户名:', validators=[DataRequired()])
20-
password = PasswordField('密码:', validators=[DataRequired()])
21-
password2 = PasswordField('确认密码:', validators=[DataRequired(), EqualTo('password', '密码填入的不一致')])
22-
submit = SubmitField('提交')
20+
username = StringField(label='用户名:', validators=[DataRequired()])
21+
email = StringField(label='邮箱:', validators=[DataRequired(), Email(message='邮箱格式错误')])
22+
password = PasswordField(label='密码:', validators=[DataRequired(), Length(6, 16, message='密码格式错误')])
23+
password2 = PasswordField(label='确认密码:', validators=[DataRequired(), Length(6, 16, message='密码格式错误'),
24+
EqualTo('password', message='密码不一致')])
25+
submit = SubmitField(label='提交')
2326

2427

2528
# 定义根路由视图函数,生成表单对象,获取表单数据,进行表单数据验证
26-
@app.route('/form', methods=['GEt', 'POST'])
29+
@app.route('/', methods=['GEt', 'POST'])
2730
def login():
2831
# 由RegisterForm类生成一个表实例
29-
login_form = LoginForm()
30-
32+
register_form = RegisterForm()
33+
3134
# 逻辑处理
3235
if request.method == 'POST':
33-
34-
# 获取请求的参数
35-
username = request.form.get('username')
36-
password = request.form.get('password')
37-
password2 = request.form.get('password2')
38-
3936
# 调用validation_on_submit方法,可以一次性执行完所有验证函数的逻辑
40-
if login_form.validate_on_submit():
41-
# 进入这里就表示所有的逻辑都验证成功
42-
print(username)
43-
return 'success'
44-
37+
if register_form.validate_on_submit():
38+
username = request.form.get('username')
39+
email = request.form.get('email')
40+
password = request.form.get('password')
41+
password2 = request.form.get('password2')
42+
43+
if username == 'xgx' and password == password2 and email == 'test@gmail.com':
44+
# 进入这里就表示所有的逻辑都验证成功
45+
return 'Register success, username: {}, email: {}, password: {}'.format(username, email, password)
46+
else:
47+
return 'Error'
4548
else:
46-
# message = register_form.get('password2')[0]
47-
# flash(message)
48-
flash('参数有误')
49-
50-
# 把实例化后的register_form传入到页面wtf.html中
51-
return render_template('login.html', form=login_form)
49+
return 'Invalid'
5250

53-
54-
@app.route('/')
55-
def index():
56-
return render_template('index.html')
51+
# 把实例化后的register_form传入到页面wtf.html中
52+
return render_template('register.html', form=register_form)
5753

5854

59-
if __name__ == '__mian__':
60-
app.run()
55+
if __name__ == '__main__':
56+
app.run(debug=True)

Flask-10-wtf/templates/login.html

Lines changed: 0 additions & 19 deletions
This file was deleted.
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
<!DOCTYPE html>
2+
<html>
3+
<head>
4+
<meta charset="UTF-8">
5+
<title>Register</title>
6+
</head>
7+
<body>
8+
9+
<form method="post">
10+
{# 设置csrf_token #}
11+
{{ form.csrf_token() }}
12+
{{ form.username.label }}{{ form.username }} <br>
13+
{{ form.email.label }}{{ form.email }} <br>
14+
{{ form.password.label }}{{ form.password }} <br>
15+
{{ form.password2.label }}{{ form.password2 }} <br>
16+
{{ form.submit }}
17+
</form>
18+
19+
</body>
20+
</html>

Flask-2/run.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
@app.route('/')
88
def index():
9-
return "Hello, flask!";
9+
return "Hello, flask!"
1010

1111

1212
if __name__ == '__main__':

0 commit comments

Comments
 (0)