五 .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的概念

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM