一、什么是蓝图?
蓝图(blueprint):用于实现单个应用的视图、模板、静态文件的集合,是模块化处理的类。是flask自带的一种开发模式,目的是为了方便开发大型的项目。
其实蓝图就是一个存储视图方法的容器,这些操作在蓝图被注册到一个应用之后就可以被调用,Flask 可以通过Blueprint来组织URL以及处理请求。
二、蓝图的案列
蓝图可以把开发app有关的东西用函数独立出来,变成一个模块
如图所示,设app有用户、商品、订单,如果把这些路由写直接写在启动文件上,那么启动文件将会很繁杂,看起来很乱。
而蓝图的作用正是把关于app的各个路由分组集合起来,方便程序员以后的开发。
三、蓝图的应用
设以app为例子,开始实现蓝图的应用。(注意:本次软件为pycharm)
1、在项目里创建关于app的类文件夹,这里其名为apps,再在这个文件夹里创建关于用户、商品、订单的类文件夹:
2、以articles为例,在里面创建一个视图view.py,这里将会是写所有关于articles的路由的地方
3、在view.py里定义蓝图,定义蓝图语法为:user_bp = Blueprint(‘蓝图的名字’,__name__)
article_bp = Blueprint('article', __name__, url_prefix='/article')
#url_prefix='/article' 当调用蓝图时url上会显示/article/xx(xx为路由)
(注意:用蓝图时一定要导入Blueprint,因为蓝图是flask自带的一种开发模式,直接导入就好了)
4、然后再原来创建app的文件里注册蓝图
def create_app():
app = Flask(__name__, template_folder='../templates', static_folder='../static')
app.config.from_object(DevelopmentConfig) #调用配置文件
app.register_blueprint(article_bp) #注册蓝图
return app
(注意:这里也要导入article_bp)
5、在view.py里就可以用了,用法为@article_bp.route('/')
@article_bp.route('/')
def index():
pass #调用时网页链接为http://xxxxxxxx/articles/