蓝图
一、定义
对程序进行目录结构划分
二、自定义份文件
2.1 目录结构
-templates
-views
-__init__.py
-user.py
-order.py
-app.py
2.2 app.py
from views import app if __name__ == '__main__': app.run()
2.3 init.py
from flask import Flask,request app = Flask(__name__) #不导入这个不行 from . import account from . import order from . import user
2.4 user.py
from . import app @app.route('/user') def user(): return 'user'
2.5 order.py
from . import app @app.route('/order') def order(): return 'order'
三、使用蓝图之中小型系统
3.1 目录结构
-flask_pro -flask_test -__init__.py -static -templates -views -order.py -user.py -manage.py
3.2 __init__.py
from flask import Flask app=Flask(__name__) from flask_test.views import user from flask_test.views import order app.register_blueprint(user.us) app.register_blueprint(order.ord)
3.3 manage.py
from flask_test import app if __name__ == '__main__': app.run(port=8008)
3.4 user.py
from flask import Blueprint us=Blueprint('user',__name__) @us.route('/login') def login(): return 'login'
3.5 order.py
from flask import Blueprint ord=Blueprint('order',__name__) @ord.route('/test') def test(): return 'order test'
四、使用蓝图之大型系统
大型项目,可以模拟出类似于django中app的概念
五、总结
- xxx = Blueprint('account', name,url_prefix='/xxx') :蓝图URL前缀,表示url的前缀,在该蓝图下所有url都加前缀
- xxx = Blueprint('account', name,url_prefix='/xxx',template_folder='tpls'):给当前蓝图单独使用templates,向上查找,当前找不到,会找总templates
- 蓝图的befort_request,对当前蓝图有效
- 大型项目,可以模拟出类似于django中app的概念