flask框架——蓝图
蓝图最佳实践和常见用途:
- 模块化: 将不同功能模块的路由分开定义,例如:
-
- auth_router:处理认证(登录、注册、注销),url_prefix='/auth'
- api_router:提供 RESTful API 接口,url_prefix='/api/v1'
- admin_router:后台管理功能,url_prefix='/admin'
2、蓝图: Flask 中用于组织一组相关视图、模板、静态文件和其他代码的“模块化”工具。
允许你将应用分解成更小的、可重用的组件,而不是把所有路由都写在主应用文件里。
参数说明:
- name:蓝图的名称
- import_name:蓝图所在的模块,一般定义为__name__
- url_prefix="/user":为该蓝图下的所有路由设置了一个统一的前缀 /user
# 蓝图 from flask import Blueprint, Flask app = Flask(__name__) # Blueprint()创建一个蓝图的实例,name是蓝图名,是蓝图的唯一标识 goods_router = Blueprint(name="goods", import_name=__name__) user_router = Blueprint("user", __name__, url_prefix="/user") # 使用蓝图对象定义路由 @goods_router.route("/") def index(): return {"code":0, "msg": "get success", "data": []} @goods_router.route("/add", methods=["POST"]) def add_goods(): return {"code":0, "msg": "add success"} @user_router.route("/") def user_list(): return {"code":0, "msg": "get success one", "data": []} @user_router.route("/login", methods=["POST"]) def login(): return {"code": 0, "msg": "add success one"} # 注册蓝图对象到flask的启动对象中 if __name__ == '__main__': # 把蓝图的实例注册到主应用app中 app.register_blueprint(goods_router) app.register_blueprint(user_router) app.run('0.0.0.0', 5001, debug=True)