蓝图 Blueprint 是flax的子集,它可以有独立的templates、static等。而模块独立可以使整个工程变得清晰易读,也避免文件之间循环引用的问题
Blueprint使用:
1.首先在子文件夹init文件中定义蓝图,比如/main/__init__.py中
from flask import Blueprint
main = Blueprint('main', __name__, url_prefix='/main/api/v0.1')
from . import views
==========================================================
#可以加参数,指定static、templates、url_prefix等
#main=Blueprint('main',__name__, url_prefix='/main/api/v0.1', template_folder='templates', static_folder='static')
#蓝图为 /main 把静态文件夹注册到 /main/static
#蓝图想要渲染'index.html'模板,且已经提供了 templates 作为 template_folder,
需要这样创建文件: /main/templates/main/index.html
2.在/main/views.py中
from . import main
@main.route('/test')
def hello():
return 'hello world!'
3.在app的入口中注册蓝图,比如runserver.py中:
from flask import Flask
app = Flask(__name__)
from main import main as main_app
app.register_blueprint(main_app)
if __name__ == '__main__':
#可以查看 URL 映射
#print app.url_map
app.run(host='0.0.0.0')
4.访问localhost:5000/main/api/v0.1/test, 即可返回 hello world!
当你想要从一个页面链接到另一个页面,你可以像通常一个样使用 url_for() 函数,
只是你要在 URL 的末端加上蓝图的名称和一个点(.)作为前缀:
url_for('admin.index')