Flask是个很轻便的框架,如果网站简单,就用一个app.py就把所有业务逻辑都写完了。但是如果业务逻辑多,需要多人开发,写一个文件,就很头疼。
所以Flask用蓝图(Blueprint)的概念,使得代码可以进行拆分。Blueprint的工作方式和Flask对象很接近,但两者又不一样。
创建Blueprint
1 | from flask import Blueprint, render_template, abort |
这是官网上的一个例子。其实就是创建一个Blueprint对象,指定路由,绑定视图函数。这样就可以把相关的业务逻辑,页面模板,静态文件组成一个package。通过这种方式把一个工程,拆解成不用的模块,减少耦合,并行开发。
注册Blueprint
Blueprint需要在Flask对象中注册,这样才能确定最终的URL。
1 | from flask import Flask |
通过url_prefix就可以确定蓝图的url路由。同时蓝图还能提供子域名的方式进行路由。使用subdomain='www.lutieg.com’参数可以实现指定动态子域名的方式。还可以通过传入参数的方式指定URL
参考链接:
1, http://dormousehole.readthedocs.io/en/latest/blueprints.html
2, https://spacewander.github.io/explore-flask-zh/7-blueprints.html