在 Flask 中,可以使用 蓝图(Blueprint) 来组织和注册路由,从而让代码更加模块化和易于维护。以下是完整的使用方法:
1. 创建 Flask 项目结构
建议的项目目录结构如下:
my_flask_app/
│── app.py # 入口文件
│── blueprints/
│ ├── __init__.py # 蓝图初始化
│ ├── user.py # 用户相关的蓝图
│ ├── auth.py # 认证相关的蓝图
└── templates/ # 模板文件夹(如果有)
2. 定义蓝图(Blueprint)
blueprints/user.py
(用户相关蓝图)
from flask import Blueprint, jsonify
# 创建蓝图
user_bp = Blueprint('user', __name__, url_prefix='/user')
@user_bp.route('/info')
def user_info():
return jsonify({"message": "User info API"})
@user_bp.route('/profile')
def user_profile():
return jsonify({"message": "User profile API"})
blueprints/auth.py
(认证相关蓝图)
from flask import Blueprint, jsonify
auth_bp = Blueprint('auth', __name__, url_prefix='/auth')
@auth_bp.route('/login', methods=['POST'])
def login():
return jsonify({"message": "Login API"})
@auth_bp.route('/logout', methods=['GET'])
def logout():
return jsonify({"message": "Logout API"})
3. 在 __init__.py
中初始化蓝图
blueprints/__init__.py
from flask import Flask
# 导入蓝图
from .user import user_bp
from .auth import auth_bp
def create_app():
app = Flask(__name__)
# 注册蓝图
app.register_blueprint(user_bp)
app.register_blueprint(auth_bp)
return app
4. 在 app.py
中运行 Flask 应用
from blueprints import create_app
app = create_app()
if __name__ == '__main__':
app.run(debug=True)
5. 运行 Flask 并访问接口
启动 Flask:
python app.py
访问:
http://127.0.0.1:5000/user/info
-> 返回{ "message": "User info API" }
http://127.0.0.1:5000/auth/login
-> 返回{ "message": "Login API" }
这样,使用 蓝图 可以将不同功能模块拆分到不同的文件,便于管理和维护!🚀