赞
踩
简单来说,Blueprint 是⼀个存储操作⽅法的容器,这些操作在这个Blueprint 被注册到⼀个应⽤之后就可以被调⽤,
Flask 可以通过Blueprint来组织URL以及处理请求。
Flask使⽤Blueprint让应⽤实现模块化,在Flask中,Blueprint具有如下属性:
蓝图/Blueprint对象⽤起来和⼀个应⽤/Flask对象差不多,最⼤的区别在于⼀个 蓝图对象没有办法独⽴运⾏,必须将它注册到⼀个应⽤对象上才能⽣效
1,创建⼀个蓝图对象
admin=Blueprint('admin',__name__)
2,在这个蓝图对象上进⾏操作,注册路由,指定静态⽂件夹,注册模版过滤器
@admin.route('/')
def admin_home():
return 'admin_home'
3,在应⽤对象上注册这个蓝图对象
app.register_blueprint(admin,url\_prefix='/admin')
当这个应⽤启动后,通过/admin/可以访问到蓝图中定义的视图函数
url_for('admin.index') # /admin/
和应⽤对象不同,蓝图对象创建时不会默认注册静态⽬录的路由。需要我们在 创建时指定 static_folder 参数。
下⾯的示例将蓝图所在⽬录下的static_admin⽬录设置为静态⽬录
admin = Blueprint("admin",__name__,static_folder='static_admin')
app.register_blueprint(admin,url_prefix='/admin')
现在就可以使⽤/admin/static_admin/ 访问static_admin⽬录下的静态⽂件了 定制静态⽬录URL规则 :可以在创建蓝图
对象时使⽤ static_url_path 来改变静态⽬录的路由。下⾯的示例将为static_admin ⽂件夹的路由设置为 /lib
admin=Blueprint("admin",__name__,static_folder='static_admin',static_url_path='/lib')
app.register_blueprint(admin,url_prefix='/admin')
蓝图对象默认的模板⽬录为系统的模版⽬录,可以在创建蓝图对象时使⽤ template_folder 关键字参数设置模板⽬录
admin = Blueprint('admin',__name__,template_folder='my_templates')
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。