当存在多个应用时候,比如一个博客系统需要文章,评论等程序,这时候可以将这几类分别使用一个app,其实道理跟django感觉类似,因为学过django,所以这块对于我来说不是很难理解。
下面来讲解一下我理解的蓝图:
在同一个文件夹下面使用或者可将各个app放在不同包或者文件下,其中对于需要引导到html或者一些静态文件也是同样的道理。下面案例是在同一个文件夹下测试的。
我们需要先导入蓝图,from flask import Blueprint。接着实现一个Blueprint对象,他具体需要哪些参数可以通过源代码去查看哈,下面也就是使用了三个参数
blueprint.py
# !/usr/bin/env python
# -*-coding:utf-8 -*-
from flask import Blueprint,render_template
# url_prefix蓝图的预加载路径,也就是访问当前蓝图之前需要使用,比如下面代码需要访问http://127.0.0.1:8888/user/use
bp = Blueprint('user',__name__,url_prefix='/user/')
@bp.route('/use')
def user():
return "我是蓝图的用户页"
@bp.route('/html')
def htmls():
return render_template('blue.html')
在blueprintadmin.py下写,首先需要导入蓝图,也就是上面那个文件下所写的,from buleprint import bp。接着注册app.register_blueprint(bp)。这样结合前几篇文章,万事告成。
blueprintadmin.py
# !/usr/bin/env python
# -*-coding:utf-8 -*-
from flask import Flask
from buleprint import bp
app = Flask(__name__)
app.register_blueprint(bp)
@app.route('/')
def index():
return "我是首页"
if __name__ == '__main__':
app.run(host='0.0.0.0',port=8888)