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 小时前
Dify Docker Compose 通用无损升级指南:从备份、双版本预演到切换与回滚
运维·人工智能·python·docker·容器
GlueNa2SiO36 小时前
03-Flask模板引擎Jinja2详解
笔记·python·flask
临沂GEO8 小时前
GEO搜索优化科普|正规地理位置流量运营入门指南
大数据·人工智能·python·流量运营
大模型码小白9 小时前
Spring AI Tool 实现自然语言操作 MySQL 数据库详解
服务器·开发语言·数据库·人工智能·python·mysql·spring
荷蒲10 小时前
【小白量化Qbuddy】利用AI学习中文Python
人工智能·python·学习
数据狐(Datafox)11 小时前
京东商品列表API技术解析与落地应用(含标准 JSON 示例)
java·大数据·前端·人工智能·python·数据分析·json
量化吞吐机12 小时前
2026年下半年手工交易规则走向量化表达,产品该先接住哪一步
人工智能·python
Metaphor69212 小时前
使用 Python 读取和删除 Excel 文件属性
python·excel
迷迭香yy13 小时前
Python构建转融券多空识别系统从接口到因子的全流程 IG50免费开源股票数据API接口
开发语言·python·开源
月光船幽幽14 小时前
真实即粗糙,光滑是伪造
人工智能·python