1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
| from flask import Flask, render_template, request, redirect, url_for, flash
from flask_wtf import FlaskForm
from wtforms import StringField, IntegerField, SubmitField
from wtforms.validators import DataRequired
# 初始化 Flask 应用
app = Flask(__name__)
# 设置表单秘钥
app.config['SECRET_KEY'] = 'mysecretkey'
# 定义表单类
class UserForm(FlaskForm):
name = StringField('Name', validators=[DataRequired()])
age = IntegerField('Age', validators=[DataRequired()])
submit = SubmitField('Submit')
# 定义数据
users = [
{'name': 'Alice', 'age': 25},
{'name': 'Bob', 'age': 30},
{'name': 'Charlie', 'age': 35}
]
# 设置路由和视图函数,展示用户列表
@app.route('/')
def user_list():
return render_template('user_list.html', users=users)
# 设置路由和视图函数,展示用户信息
@app.route('/user/<name>')
def user_info(name):
# 根据用户名获取用户信息
user = None
for u in users:
if u['name'] == name:
user = u
break
if not user:
return 'User not found'
# 返回渲染后的 HTML 模板
return render_template('user_info.html', user=user)
# 定义蓝图,为管理员提供 API
from .admin_api import admin_api_blueprint
app.register_blueprint(admin_api_blueprint, url_prefix='/api/admin')
# 设置路由和视图函数,展示添加用户表单
@app.route('/add_user', methods=['GET', 'POST'])
def add_user():
# 创建表单对象
form = UserForm()
if form.validate_on_submit():
# 获取表单数据
name = form.name.data.strip()
age = form.age.data
# 添加用户
users.append({'name': name, 'age': age})
# 显示成功信息
flash(f'User {name} added successfully.')
# 重定向到用户列表页面
return redirect(url_for('user_list'))
# 返回渲染后的 HTML 模板
return render_template('add_user.html', form=form)
# 设置路由和视图函数,展示静态文件
@app.route('/static_file')
def static_file():
# 返回静态文件内容
return app.send_static_file('example.txt')
if __name__ == '__main__':
# 启动 Web 服务器
app.run(debug=True)
|