当前位置: 首页 > article >正文

Flask使用Blueprint注册管理路由

在 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" }

这样,使用 蓝图 可以将不同功能模块拆分到不同的文件,便于管理和维护!🚀

原文地址:https://blog.csdn.net/weixin_41405524/article/details/146266111
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.kler.cn/a/585986.html

相关文章:

  • 搭建基于chatgpt的问答系统
  • Python 推导式详解
  • MySQL学习笔记(4)三大日志
  • 基于Matlab设计GUI图像处理交互界面
  • 计算机网络基础:网络安全基础
  • python-leetcode-删掉一个元素以后全为 1 的最长子数组
  • 将docker images导入crictl images
  • 基于腾讯云高性能HAI-CPU的跨境电商客服助手全链路解析
  • uniapp页面跳转带参数获取,需要注意在小程序和web下是不一样的
  • 网络爬虫相关
  • DeepLabv3+改进10:在主干网络中添加LSKBlock|动态调整其大型空间感受野,助力小目标识别
  • element-plus中Autocomplete自动补全输入框组件的使用
  • 硬件工程师入门教程(四)
  • linux ptrace 图文详解(二) PTRACE_TRACEME 跟踪程序
  • 解决Docker Desktop中ext4.vhdx文件过大的问题
  • 【Java 进阶实战】一 学习成果检验
  • 《大语言模型》学习笔记(一)
  • 初探大模型开发:使用 LangChain 和 DeepSeek 构建简单 Demo
  • Apache Doris中都用了哪些开发语言,编译过程中用到了哪些编译器,以及用到了哪些成熟的技术框架
  • 支持Linux、鸿蒙的工业AIOT智能终端在钢铁厂的应用