美文网首页
蓝图(blueprint)

蓝图(blueprint)

作者: Elvis_zhou | 来源:发表于2018-07-03 21:41 被阅读0次

Blueprint

一. 什么是蓝图

当你的项目有很多模块时,放在一起的话,既不方便查看,耦合度又太高。所以Flask提供了蓝图(Blueprint)功能。蓝图使用起来就像应用当中的子应用一样,可以有自己的模板,静态目录,有自己的视图函数和URL规则,蓝图之间互相不影响。但是它们又属于应用中,可以共享应用的配置。对于大型应用来说,我们可以通过添加蓝图来扩展应用功能,而不至于影响原来的程序。不过有一点要注意,目前Flask蓝图的注册是静态的,不支持可插拔。

二. 初识蓝图

蓝图/Blueprint对象用起来和一个应用Flask对象差不多,最大的区别在于一个 蓝图对象没有办法独立运行,必须将它注册到一个应用对象上才能生效

使用蓝图可以分为三个步骤

  1. 导入蓝图模块, 创建蓝图对象
news_blue=Blueprint('news',__name__)
  1. 使用创建的蓝图对象实现路由
@admin.route('/news_blue')
def news_blue():
    return 'news_blue'
  1. 在应用对象上注册这个蓝图对象
app.register_blueprint(news_blue)

当这个应用启动后,通过/news/可以访问到蓝图中定义的视图函数

三. 目录模块形式

通常在开发项目中,路由需要拆分到一些目录模块中,每个模块内可以拥有独立的模板文件夹、静态文件夹等.此时写法需要略微调整.仍然是蓝图的三个步骤

  1. 导入蓝图模块, 创建蓝图对象, 同时导入子模块
    在new/init.py内,
# 1. 导入蓝图模块, 创建蓝图对象
from flask import Blueprint

news_blue = Blueprint('news', __name__)

# 这里需要导入子模块, 否则程序不知道哪个文件使用了蓝图对象
from . import views

这里的‘news’是视图函数的前缀名,在之后会用 url_for 引用视图函数所渲染的网页,name后还有一个 url_prefix='/admin' 这是给访问地址加前缀的,防止重名。

  1. 导入创建的蓝图对象, 使用创建的蓝图对象实现路由
    在new/views.py内
# 2. 使用蓝图对象实现路由
from . import news_blue
@news_blue.route('/news_list')
def news_list():
    return 'news_list'
  1. 在应用对象上注册这个蓝图对象(跟单文件一样)
app.register_blueprint(news_blue)

4.简单的总结
蓝图的使用步骤:
1.导入蓝图,创建蓝图对象
2.使用蓝图对象,修改路由
3.在app(flask对象)创建的地方注册蓝图

相关文章

  • Python 中的蓝图(Blueprint)

    1.Python 中的蓝图(Blueprint)python 中的蓝图(Blueprint) 2.腾讯云Pytho...

  • 蓝图(blueprint)

    Blueprint 一. 什么是蓝图 当你的项目有很多模块时,放在一起的话,既不方便查看,耦合度又太高。所以Fla...

  • Blueprint(蓝图)

    1. 什么是蓝图 在Flask项目中可以用Blueprint(蓝图)实现模块化的应用,使用蓝图可以让应用层次更清晰...

  • Flask初探五( Blueprint / url_for /

    Blueprint (蓝图) Blueprints are the recommended way to impl...

  • 蓝图基础

    Blueprint Optimization | Live Training | Unreal Engine 蓝图...

  • flask蓝图的基本使用

    1.引用蓝图 /user/profilefrom flask import Blueprint#user 蓝图定义...

  • 蓝图

    蓝图blueprint 定义蓝图 在home和admin目录下init.py中定义蓝图 调用蓝图 在home和ad...

  • 蓝图类型

    Level Blueprint Blueprint Class:相对于级别蓝图,可以用于不同的关卡,同时作用于多个...

  • Unreal4蓝图宏库0048bate1

    蓝图宏库 声明和定义宏以便在其他蓝图中重复利用的蓝图。蓝图宏库(Blueprint Macro Library) ...

  • flask蓝图Blueprint

    1. 作用 模块化URL管理 2. 操作 主文件 蓝图文件

网友评论

      本文标题:蓝图(blueprint)

      本文链接:https://www.haomeiwen.com/subject/yfmmyftx.html