这篇教程Flask-蓝图写得很实用,希望能帮到您。 前言: 我们的应用经常会有很多小模块,比如用户模块、后台管理模块等,虽然这些模块都在同一个应用中,但是功能大不相同,把他们放在同一个文件中,显得十分杂乱,不便于管理维护,那么有没有什么方法可以将模块分开管理呢?是有的!Flask 蓝图(Blueprint),它可以模块化管理路由,使用蓝图可以把不同模块的视图函数写在不同的py文件中,在主视图中导入分路由视图的模块,并注册蓝图对象,降低各个功能模块的耦合度使程序结构更加简单、清晰。 Flask使用Blueprint让应用实现模块化,在Flask中,Blueprint具有如下属性: - 一个项目可以具有多个
Blueprint - 可以将一个
Blueprint 注册到任何一个未使用的URL 下比如 “/ ”、“/sample ”或者子域名 - 在一个应用中,一个模块可以注册多次
Blueprint 可以单独具有自己的模板、静态文件或者其它的通用操作方法,它并不是必须要实现应用的视图和函数的 - 在一个应用初始化时,就应该要注册需要使用的
Blueprint
1、蓝图的定义蓝图就是用于实现单个应用的视图、模板、静态文件的集合。使用蓝图可以实现模块化应用的功能,有些类似于Django 中子应用 app 。 蓝图使用起来就像应用当中的子应用一样,可以有自己的视图、模板,静态文件等。多个蓝图之间互不影响,但是它们可以共享应用的全局变量、配置信息等。
1.1使用蓝图使用flask.Blueprint 定义蓝图,app.register_blueprint 注册蓝图。 下面来具体介绍一下如何使用蓝图。 新建创建一个“user ”子目录,并在该目录中新建一个 __init__.py 文件,在文件中,创建用户蓝图对象: from flask import Blueprintuser_bp = Blueprint("user", __name__, url_prefix="/user") 创建了蓝图对象“user_bp ”,Blueprint 的第一个参数user 指定了这个蓝图的名称,第二个参数指定了该蓝图所在的模块名,这里是当前文件,第三个参数指定其 url 前缀。 然后编写视图文件 views.py,并编写视图函数: from user import user_bp@user_bp.route('/')def index(): return '<h1>Hello, this is user blueprint</h1>'@user_bp.route('/add')def add_user(): return '<h1>add success!</h1>' 关于Flask 视图介绍 Flask |