项目思路:
1. 首页展示
将数据传递给前端模板渲染
2. 注册用户
接收前端传递的数据,保存后,重定向到首页
3. 删除用户
接收前端传递的用户名,进行删除
4. 修改用户
接收前端传递的数据,老名字进行判断,新数据修改数据
项目结构:
构建蓝图:
(1). apps / user / model.py 增加用户模型类
class User:
def __init__(self, username, password, phone):
self.username = username
self.password = password
self.phone = phone
def __str__(self):
return self.username
(2).apps / user / view.py 定义蓝图对象
from flask import Blueprint
# 定义蓝图对象
user_bp = Blueprint('user', __name__)
# 导入 User模型类
from apps.user.model import User
@user_bp.route("/")
def user_center():
return "首页"
(3).apps / __init__.py 创建app,注册蓝图
from flask import Flask
import settings
from apps.user.view import user_bp
# 创建app
def create_app():
app = Flask(__name__, template_folder="../templates", static_folder="../static") # app是一个核心对象
app.config.from_object(settings) # 加载配置
# 蓝图
# 将蓝图对象绑定到app上
app.register_blueprint(user_bp)
# ...
print(app.url_map) # 获取路由信息
return app
(4). app.py 绑定 apps
from apps import create_app
# 创建app对象
app = create_app()
if __name__ == '__main__':
app.run()
(5). settings.py 全局配置文件
ENV = "development" # 开发环境
DEBUG = True # 开启调试模式
编写页面:
(1). base.html: 公共页面模型
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
{# 预留标头位置 #}
<title>{% block title %}用户中心{% endblock %}</title>
<style>
#head {
height: 50px;
background-color: bisque;
}
#head ul {
list-style: none;
height: 50px;
display:inline-block;
margin-top:3px;
}
#head ul li {
float: left;
width: 100px;
text-align: center;
font-size: 18px;
height: 50px;
line-height: 50px;
}
#middle {
height: 900px;
background-color: aqua;
}
#foot {
height: 50px;
line-height: 50px;
background-color: darkolivegreen;
}
</style>
{# 预留css位置 #}
{% block mycss %}{% endblock %}
</head>
<body>
<div id="head">
<ul>
<li><a href=""></a>首页</li>
<li><a href=""></a>订单</li>
<li><a href=""></a>商品</li>
<li><a href=""></a>好物</li>
</ul>
</div>
<div id="middle">
{# 内容预留位置 #}
{% block middle %}{% endblock %}
</div>
<div id="foot"></div>
</body>
{# 预留js位置 #}
{% block myjs %}{% endblock %}
</html>
(2). 首页展示
(3). 注册功能
(4). 删除功能
@user_bp.route("/del")
def del_user():
# 获取前端get方式传递的username
username = request.args.get('username')
# 根据username找到列表中的user对象
for user in users:
if user.username == username:
users.remove(user) # 移除
return redirect("/") # 重定向回首页
else:
return "删除失败"
(5). 修改功能