利用Python Flask蓝图加自定义蓝图划分优雅的目录结构

本文介绍了如何在Flask项目中通过规划目录结构、创建app包和核心目录,以及使用blueprint和自定义redprint类来优雅地组织多个模块和视图函数,以避免将所有路由函数放在单一入口文件中导致的混乱。通过实例展示了如何初始化不同版本的API目录,托管模块,并设置配置文件,以实现更清晰的项目结构。
摘要由CSDN通过智能技术生成

我们在用Flask开发网站的时候。经常看到有很多人把所有的路由函数放到了入口文件,这种做法是非常不可取的,如果我们的视图函数有几百个了都写到一个文件里肯定是不行的。还有在实现中我们都在比较大型项目里面我们可能有十几个甚至几十个这种不同模型。我们需要考虑把这些模型分文别类归属到不同的文件中去。而不是都集中在同一个文件中。如下图这种:

是不是很乱,那么我们怎么拆分这些函数了。接下来我们就来简单实现一下:


一、 规划目录结构

二、新建app包构造核心目录

api/v1/init.py 接口目录为版本号模块初始化文件
api/v1/user.py 接口目录为版本号加上模块名称文件
config/settings.py 包为配置文件
lib/redprint.py核心类文件模仿蓝图重写
app.py 核心入口文件
当然还有其他包比如model为数据库validate为验证等等就不在列举

  1. api/v1/init.py 用蓝图托管版本号导入不同模块

    from flask import Blueprint
    from app.api.v1 import user, website
    def create_blueprint_v1():
        bp_v1 = Blueprint('v1', __name__)
        user.api.register(
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python Flask 蓝图是一种组织 Flask 应用程序的有效方式。它允许您将应用程序分解为可重用的模块,并使应用程序更易于管理和扩展。蓝图可以定义路由、视图、静态文件和模板等 Flask 应用程序中的各种组件。 以下是 Python Flask 蓝图的用法: 1. 创建蓝图 要创建蓝图,您需要使用 Flask 实例的 Blueprint() 函数。Blueprint() 函数需要两个参数:蓝图名称和蓝图文件的位置。 例如,以下代码创建了一个名为 'main' 的蓝图,并将其保存在 main.py 文件中: ``` from flask import Blueprint main_blueprint = Blueprint('main', __name__) ``` 2. 定义路由 要在蓝图中定义路由,您需要使用 Blueprint 对象的 route() 方法。该方法与 Flask 实例的 route() 方法类似。 例如,以下代码在 'main' 蓝图中定义了一个路由: ``` @main_blueprint.route('/') def index(): return 'Hello, World!' ``` 3. 注册蓝图 要在 Flask 应用程序中使用蓝图,您需要将其注册到应用程序中。可以使用 Flask 实例的 register_blueprint() 方法将蓝图注册到应用程序中。 例如,以下代码将 'main' 蓝图注册到 Flask 应用程序中: ``` from flask import Flask from main import main_blueprint app = Flask(__name__) app.register_blueprint(main_blueprint) ``` 4. 使用蓝图的静态文件和模板 蓝图也可以定义其自己的静态文件和模板。要使用蓝图的静态文件和模板,您需要在蓝图的文件夹中创建一个名为 'static' 和 'templates' 的文件夹,并将静态文件和模板放在这些文件夹中。 例如,以下代码显示了如何在蓝图中使用静态文件和模板: ``` main_blueprint = Blueprint('main', __name__, template_folder='templates', static_folder='static') @main_blueprint.route('/') def index(): return render_template('index.html') ``` 以上就是 Python Flask 蓝图的用法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值