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

相关推荐
Jazz_z31 分钟前
如何用Python将彩色PDF一键转为黑白(灰度)
java·python·pdf
SEO_juper37 分钟前
2026年Schema自动注入实战:用Python批量给1000个页面加上JSON-LD,AI引用率实测提升38%
人工智能·python·json·seo·独立站
zzzll11111 小时前
HashMap、HashTable、ConcurrentHashMap 详细区别与深度解析
开发语言·python
程序员AI工坊1 小时前
Agent 开发:ReAct 循环与工具调用实战——从单次调用到自主 Agent
人工智能·后端·python·langchain·agent·react
️学习的小王1 小时前
基于UDP实现简易聊天室(基础版)——Python实现
网络·python·udp
W_326002 小时前
Python 组合数据类型——序列(列表 & 元组)
开发语言·python
二进制杯莫停2 小时前
A和B环境的python版本相同,B环境无法安装pip依赖,离线安装
开发语言·python·pip
威联通安全存储2 小时前
TS-h1677AXU-RP 在汽车冲压车间高速冲压线检测网中的部署
python·汽车
RSTJ_16253 小时前
PYTHON+AI LLM DAY ONE HUNDRED AND TWENTY-NINE
人工智能·python
夏天测3 小时前
Python 网络编程从 TCP 三次握手到 Socket 搭建极简 AI 推理服务端(零基础可跑通完整代码)
python·socket·网络通信·tcp 网络编程·零基础网络编程