python flask app.py里的接口放在别的目录下图文教程

在Flask中,将接口(即视图函数)放在不同的目录下是一种组织代码的良好实践,特别是在你的应用变得较大时。这种方法可以提高代码的可维护性和可读性。以下是一个步骤详解,教你如何将Flask应用的接口放在不同的目录下。

步骤 1: 创建项目结构

首先,我们需要创建一个基本的项目结构。例如:

复制代码
my_flask_app/ 
  │ 
  ├── app/ │ 
  ├──── __init__.py │ 
  ├──── main.py │ 
  └──── routes.py │ 
  ├── run.py │ 
  └── requirements.txt

步骤 2: 初始化Flask应用

在app/__init__.py文件中,初始化Flask应用并配置蓝图(Blueprints)。蓝图是Flask中用来组织视图函数和其它代码的工具。

复制代码
from flask import Flask 
from .routes import main_blueprint 
def create_app(): 
    app = Flask(__name__) 
    app.register_blueprint(main_blueprint) 
    return app

步骤 3: 创建蓝图和视图函数

在app/routes.py文件中,创建蓝图并定义你的视图函数。

复制代码
from flask import Blueprint, jsonify 

main_blueprint = Blueprint('main', __name__) 
@main_blueprint.route('/') 
def home(): 
    return jsonify({'message': 'Hello, World!'}

步骤 4: 运行Flask应用

在run.py文件中,创建并运行Flask应用。

复制代码
from app import create_app 

app = create_app() 

if __name__ == '__main__': 
    app.run(debug=True

步骤 5: 添加更多蓝图和视图函数(可选)

如果你有更多的接口或模块,你可以继续创建更多的蓝图和视图函数。例如,如果你想添加一个用户管理的模块,你可以这样做:

  1. 在app目录下创建一个新的文件,比如user.py。
  2. 在user.py中定义一个蓝图和相关的视图函数。
  3. 在__init__.py中注册这个新的蓝图。

例如,app/user.py:

复制代码
from flask import Blueprint, jsonify 

user_blueprint = Blueprint('user', __name__) 

@user_blueprint.route('/user') 
def get_user(): 
    return jsonify({'username': 'example'})

然后在app/__init__.py中注册这个蓝图:

复制代码
from .routes import main_blueprint 
from .user import user_blueprint # 导入新的蓝图 

def create_app(): 
    app = Flask(__name__) 
    app.register_blueprint(main_blueprint) 
    app.register_blueprint(user_blueprint) # 注册新的蓝图 return app

步骤 6: 运行应用并测试接口

现在你可以运行run.py来启动你的Flask应用,并通过浏览器或API测试工具(如Postman)来测试你的接口。例如,访问http://127.0.0.1:5000/应该返回{"message": "Hello, World!"},而访问http://127.0.0.1:5000/user应该返回{"username": "example"}。

通过以上步骤,你可以有效地将你的Flask应用中的接口分布在不同的目录下,从而提高代码的组织性和可管理性

相关推荐
孟健6 小时前
我用Grok Bot本地剪口播视频,3段提示词搞定气口切除、字幕与封面
人工智能·python·aigc
2601_966949656 小时前
如何封装 qd.klines.batch(),让批量 K 线查询函数在多个策略中复用?
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
神仙别闹7 小时前
基于Python实现英词语自动对齐系统
开发语言·python
老歌老听老掉牙8 小时前
圆柱端面四平面交线及其在yoz面投影的几何解析与 Python 实现
开发语言·python·平面
我要见SA姐18 小时前
Chrome 扩展安全攻防实录:从权限滥用到供应链投毒
运维·人工智能·python·机器学习·自动化
2601_962885728 小时前
给 backtrader 接 A 股数据:用 AlphaFeed 喂PandasData
python
YYYing.9 小时前
【Agent系列 (十一) 】上下文工程
人工智能·python·ai·agent·上下文工程
计算机毕业编程指导师9 小时前
基于深度学习的光伏组件红外图像缺陷识别系统设计与实现
人工智能·python·深度学习·目标检测·毕业设计·课程设计·光伏
前端精髓9 小时前
langchain 短期记忆(状态)动态运行时上下文
python·langchain
最强小杰10 小时前
DeepSeek V4 Flash + Codex CLI 接入教程:原生 Responses API 适配,从配置到跑通收藏这篇就够了(2026)
java·前端·python·ai