flask框架如何在不同的py写不同模块的接口

一、问题产生

        其实这篇文章,主要是写给那些想使用flask框架做后端快速进行前后端分离开发的盆友们,如果看到这篇文章,那么大家应该是在flask官网看到“快速上手“的”一个最小的应用“了,明确了自己想要找到答案的问题,那就是”虽说在一个py文件的接口上面标记 @app.route(“/hello”) ,然后在项目根目录运行 flask --app py文件 run 就可以通过 IP:PORT/hello 访问到相应的接口,那我总不能把接口都写在一个文件里面把,如果分成多个py文件写相应模块的接口,也总不能把每个页面 run 一次吧“,好问题明确,咱们往下看。

二、蓝图和视图

        其实大家在flask官网的目录看一下,就会找到”教程“里面有个”蓝图和试图“选项。
        那么什么是蓝图呢?下面是官网解释:视图是一个应用对请求进行响应的函数。 Flask 通过模型把进来的请求 URL 匹配到 对应的处理视图。视图返回数据, Flask 把数据变成出去的响应。 Flask 也可以反 过来,根据视图的名称和参数生成 URL。
        通俗易懂的说:视图就是一个函数,它负责接收来自客户端(如手机、网页等)的请求,并返回响应。在 API 设计中,这些请求通常是 HTTP 请求(如 GET、POST、PUT、DELETE 等),而响应则是一个包含数据、状态码和其他信息的 HTTP 响应。而蓝图就像是一个“项目文件夹”,它里面包含了一组相关的视图函数和其他组件。但蓝图本身并不是一个完整的 Flask 应用,它更像是一个可以插入到多个 Flask 应用中的插件或模块。
那么,我们在这里就找到了答案。

三、实现

1、文件创建

        创建文件及文件夹,目录如下:
请添加图片描述
    其中app.py代表的是应用主文件,admin文件夹代表的是项目的后台模块,web文件夹代表的是项目的前台模块,hello_world.pynihao_world.py分别代表的是后台和前台的接口文件。

2、代码展示

hello_world.py代码如下:

from flask import Blueprint, jsonify

# 创建蓝图实例
admin_blueprint = Blueprint('admin', __name__, url_prefix='/')  # 注意这里的 url_prefix 在 app.py 中会再次被覆盖

@admin_blueprint.route("/hello_world")
def hello_world():
    return "<p>Hello, World!</p>"

nihao_world.py代码如下:

from flask import Blueprint, jsonify

# 创建蓝图实例
web_blueprint = Blueprint('web', __name__, url_prefix='/')  # 注意这里的 url_prefix 在 app.py 中会再次被覆盖

@web_blueprint.route("/nihao_world")
def hello_world():
    return "<p>nihao, World!</p>"

app.py代码如下:

from flask import Flask
from blueprints.admin.hello_world import admin_blueprint
from blueprints.web.nihao_world import web_blueprint

app = Flask(__name__)

# 注册蓝图
app.register_blueprint(admin_blueprint, url_prefix='/admin')
app.register_blueprint(web_blueprint, url_prefix='/web')

# 其他配置和路由...

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

3、运行

项目根目录运行cmd,输入”flask --app app run“,
访问IP:PORT/admin/hello_world结果如下(页面显示,Hello, World!);
请添加图片描述

访问IP:PORT/web/nihao_world结果如下(页面显示,nihao, World!);
请添加图片描述
收工!!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值