五 .Flask 蓝图(文件目录结构)

一 .蓝图(文件目录结构)

1. 自己创建的蓝图

account.py

from
flask import Blueprint,render_template ac = Blueprint('ac',__name__) # 第一参数别名 实例化 蓝图 @ac.route('/login/') def login(): return render_template('login.html') @ac.route('/logout/') def logout(): return 'Logout'
user.py

from
flask import Blueprint uc = Blueprint('uc',__name__,template_folder="XXX",static_folder="aa") # 第一参数别名 实例化 蓝图 # template_folder="XXX" 参数是指 模板文件夹 注意 优先是找templates 在找自己指定的文件夹 # static_folder="aa" 参数是 指定静态文件 @uc.route('/user/') def list(): return 'List' @uc.route('/reg/') def detail(): return 'detail'
__init__.py

from
flask import Flask from .views.account import ac # 引用视图中创建的蓝图对象 from .views.user import uc # 引用视图中创建的蓝图对象

def create_app(): app = Flask(__name__) app.register_blueprint(ac) # 注册引入的蓝图实例 app.register_blueprint(uc) # 注册引入的蓝图实例

    #app.register_blueprint(uc,url_prefix="/api/") 
# 添加前缀 http://127.0.0.1:5000/api/reg/ |
# http://127.0.0.1:5000/api/user/
# 注意====>在这里添加了前缀 对应的视图蓝图都要加上 前缀

return app
manage.py

from
FlaskCrm import create_app app = create_app() if __name__ == '__main__': app.run()

 2. 添加前缀  before_request(目录和文件上面一样 )

__init__.py

from
flask import Flask from .views.account import ac # 引用视图中创建的蓝图对象 from .views.user import uc # 引用视图中创建的蓝图对象 def create_app(): app = Flask(__name__) # @app.before_request # 这是给全局使用了before_request (就是你无论访问哪个个url都会在请求之前触发) # def aa(): # print("哈哈哈") app.register_blueprint(ac) # 注册引入的蓝图实例 app.register_blueprint(uc,url_prefix="/api/") # 添加前缀 http://127.0.0.1:5000/api/reg/ | http://127.0.0.1:5000/api/user/ # 注意====>在这里添加了前缀 对应的视图蓝图都要加上 前缀 return app
account.py

from
flask import Blueprint,render_template ac = Blueprint('ac',__name__) # 第一参数别名 实例化 蓝图 @ac.before_request # 这个给单个蓝图添加 在访问这个蓝图下的url 之前触发 def aa(): print("") @ac.route('/login/') def login(): return render_template('login.html') @ac.route('/logout/') def logout(): return 'Logout'
1 xxx = Blueprint('account', __name__,url_prefix='/xxx')

url_prefix:蓝图URL前缀,表示url的前缀,在该蓝图下所有url都加前缀

2 xxx = Blueprint('account', __name__,url_prefix='/xxx',template_folder='tpls')

template_folder:给当前蓝图单独使用templates,向上查找,当前找不到,会找总templates

3 蓝图的befort_request,对当前蓝图有效

4 大型项目,可以模拟出类似于django中app的概念

猜你喜欢

转载自www.cnblogs.com/lovershowtime/p/11741629.html