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应用中的接口分布在不同的目录下,从而提高代码的组织性和可管理性

相关推荐
朝朝辞暮i6 小时前
VLA 系统学习第 4 课:一个 Batch 进入神经网络后,模型到底是怎么“学会”的?
人工智能·python·神经网络·vla
Ada's6 小时前
【计算机基础系列】003:Python数据结构
开发语言·数据结构·python
2601_962885726 小时前
如何用 Python 计算 TRIX 三重指数平滑均线指标?
开发语言·python
还卿一钵无情泪7 小时前
Unsloth 微调 构建自己的大模型 没有GPU也能微调
linux·开发语言·人工智能·python·大模型·nlp·unsloth
蜗牛互联网9 小时前
Python消费Responses SSE事件:增量文本、超时与取消
java·开发语言·人工智能·后端·python
statistican_ABin10 小时前
中国国际旅游发展分析报告—基于世界银行国际旅游数据的多维度分析
python·机器学习·旅游
青少儿编程课堂10 小时前
背包问题(0/1 背包与完全背包)解题精讲——动态规划入门
c++·python·算法·bfs·信息学竞赛
code2cat10 小时前
【随笔】MCP工具注解的信任边界:四个提示如何参与调用决策
python·ai agent·mcp
慢云智慧空间10 小时前
从设备智能到空间理解,慢云科技如何重新定义智慧建筑
python·科技
浮链序10 小时前
用 Claude Haiku 5.5 做子智能体路由,把 Agent 成本砍掉六成
人工智能·python·llm