概述
什么是蓝图Blueprint
一个应用中或跨应用制作应用组件和支持通用的模式
讲个小故事:
一个集团底下有三个子公司分别命名为A、B、C
这个地方集团就相当于flask中的app
那么A、B、C就相当于蓝图
A是科技公司
B是运输公司
C是文化公司
蓝图所能提供功能是可以通过集团-子公司找对于的公司的产品。当然你也可以不通过蓝图,可以从科技公司找到文化产品比如周边产物,但是这样很难受啊,一点都不规范。
那使用了蓝图之后相当于明确了组织架构,将整个集团底下的子公司的组织架构在做划分,以及子公司的产出做了说明。那在我集团需要用到子公司资源的时候可以直接使用的子公司的资源。
蓝图的作用
- 将不同的功能模块化
a.一个项目可以具有多个Blueprint
b. 可以将一个Blueprint注册到任何一个未使用的URL下比如 “/”、“/sample”或者子域名
c. 在一个应用中,一个模块可以注册多次
d.Blueprint可以单独具有自己的模板、静态文件或者其它的通用操作方法,它并不是必须要实现应用的视图和函数的
e.在一个应用初始化时,就应该要注册需要使用的Blueprint - 构建大型应用
- 优化项目结构
- 增强可读性、易于维护
运行机制
- 蓝图是保存了一组将来可以在应用对象上执行的操作,注册路由就是一种操作
- 当在app对象上调用 route 装饰器注册路由时,这个操作将修改对象的url_map路由表
- 然而,蓝图对象根本没有路由表,当我们在蓝图对象上调用route装饰器注册路由时,它只是在内部的一个延迟操作记录列表defered_functions中添加了一个项
- 当执行app对象的 register_blueprint() 方法时,应用对象将从蓝图对象的 defered_functions 列表中取出每一项,并以自身作为参数执行该匿名函数,即调用应用对象的 add_url_rule() 方法,这将真正的修改应用对象的usr_map路由表
使用蓝图的步骤
1、定义蓝图创建一个蓝图的包,并在__init__.py文件中创建蓝图对象(app/admin/init.py)
from flask import Blueprint
admin = Blueprint("admin", __name__)
import app.admin.views
2、在这个蓝图目录下, 创建views.py文件,保存当前蓝图使用的视图函数(app/admin/views.py)
from . import admin
@admin.route("/")
def index():
return "<h1 style='color:red'>this is admin</h1>"
3、注册蓝图,(app/init.py)
from app.home import home as home_blueprint
from app.admin import admin as admin_blueprint
app.register_blueprint(home_blueprint)
app.register_blueprint(admin_blueprint, url_prefix="/admin")
最后
以上就是负责板凳为你收集整理的flask-蓝图的作用和使用的全部内容,希望文章能够帮你解决flask-蓝图的作用和使用所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复