在 Flask 应用中,将不同的接口(路由)分散到多个文件中,并通过 Flask 的模块化机制(如 Blueprint 或直接导入路由)统一运行

示例代码

项目结构

project/
│── app.py                # 主文件,初始化 Flask 应用并注册 Blueprint
│── routes/
│   ├── __init__.py       # 标记 routes 目录为 Python 包
│   ├── users.py          # 用户相关接口
│   ├── products.py       # 产品相关接口
1. 主文件 (app.py)

app.py 是应用的入口,负责创建 Flask 应用、注册 Blueprint 并启动服务。

from flask import Flask
from routes.users import users_bp
from routes.products import products_bp

# 创建 Flask 应用
app = Flask(__name__)

# 注册 Blueprint
app.register_blueprint(users_bp, url_prefix='/users')
app.register_blueprint(products_bp, url_prefix='/products')

if __name__ == '__main__':
    app.run(debug=True, host='0.0.0.0', port=5000)

说明

  • app.register_blueprint 注册每个 Blueprint,url_prefix 为路由添加前缀(如 /users、products)。
  • debug=True 启用调试模式,host='0.0.0.0' 允许外部访问。
2. 用户接口 (routes/users.py)

定义用户相关的接口,使用 Blueprint 分组路由

from flask import Blueprint, jsonify, request

# 创建 Blueprint,命名为 'users'
users_bp = Blueprint('users', __name__)

# 模拟数据
users = [{'id': 1, 'name': 'Alice'}, {'id': 2, 'name': 'Bob'}]

# 获取用户列表
@users_bp.route('/', methods=['GET'])
def get_users():
    return jsonify(users)

# 添加新用户
@users_bp.route('/', methods=['POST'])
def add_user():
    new_user = request.get_json()
    users.append(new_user)
    return jsonify({"message": "用户添加成功", "user": new_user}), 201

说明

  • Blueprint('users', __name__) 创建名为 users 的 Blueprint。
  • 路由 / 对应 /users/(由于 url_prefix='/users')。
  • GET /users/ 返回用户列表,POST /users/ 添加新用户。
3. 产品接口 (routes/products.py)

定义产品相关的接口,同样使用 Blueprint。

from flask import Blueprint, jsonify

# 创建 Blueprint,命名为 'products'
products_bp = Blueprint('products', __name__)

# 模拟数据
products = [{'id': 1, 'name': 'Laptop'}, {'id': 2, 'name': 'Phone'}]

# 获取产品列表
@products_bp.route('/', methods=['GET'])
def get_products():
    return jsonify(products)

说明

  • Blueprint('products', __name__) 创建名为 products 的 Blueprint。
  • 路由 / 对应 /products/。
  • GET /products/ 返回产品列表。
4. 包初始化文件 (routes/__init__.py)

此文件可以为空,仅用于标记 routes 目录为 Python 包。如果需要共享配置或初始化代码,可以在此处添加。

# 空文件,标记 routes 为 Python 包

运行和测试

1. 环境准备
  • 确保已安装 Flask:pip install flask
  • 创建上述项目结构并保存文件。
2. 运行应用
  • 在项目根目录下运行:python app.py
  • Flask 服务将在 http://127.0.0.1:5000 启动。
3. 测试接口

使用 curl、Postman 或浏览器测试:

  • GET 用户列表:http://127.0.0.1:5000/users/
    • 返回:[{"id": 1, "name": "Alice"}, {"id": 2, "name": "Bob"}]
  • POST 添加用户: http://127.0.0.1:5000/users/
    • 返回:{"message": "用户添加成功", "user": {"id": 3, "name": "Charlie"}}
  • GET 产品列表:http://127.0.0.1:5000/products/
    • 返回:[{"id": 1, "name": "Laptop"}, {"id": 2, "name": "Phone"}]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值