日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【Flask】创建一个蓝图

發布時間:2025/3/21 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Flask】创建一个蓝图 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

藍圖

在一個Flask 應用項目中,如果業務視圖過多,可否將以某種方式劃分出的業務單元單獨維護,將每個單元用到的視圖、靜態文件、模板文件等獨立分開

例如從業務角度上,可將整個應用劃分為用戶模塊單元、商品模塊單元、訂單模塊單元,如何分別開發這些不同單元,并最終整合到一個項目應用中?

一、藍圖介紹

在Flask中,使用藍圖Blueprint來分模塊組織管理。
藍圖實際可以理解為是一個存儲一組視圖方法的容器對象,其具有如下特點:

  • 一個應用可以具有多個Blueprint
  • 可以將一個Blueprint注冊到任何一個未使用的URL下比如 “/user”、“/goods”
  • Blueprint可以單獨具有自己的模板、靜態文件或者其它的通用操作方法,它并不是必須要實現應用的視圖和函數的
  • 在一個應用初始化時,就應該要注冊需要使用的Blueprint

二、使用步驟

1、單個文件的藍圖

使用藍圖可以分為三個步驟

  • 創建一個藍圖對象
  • login_bp=Blueprint('register',__name__)
  • 在這個藍圖對象上進行操作,注冊路由,指定靜態文件夾,注冊模版過濾器
  • @login_bp.route('/') def login():return render_template('static/guojia.jpg')
  • 在應用對象上注冊這個藍圖對象
    特別注意1:在應用中注冊藍圖時使用url_prefix參數指定
  • app.register_blueprint(login_bp,url_prefix='/register')

    2、獨立模塊的藍圖(用的最多)

    特別注意2:創建藍圖的代碼,放到__init__文件中

    創建藍圖代碼塊(__init__文件)

    特別注意3:第六行代碼一定要寫from register.register import register

    為什么呢?

    執行項目python app.py,先執行app.py文件中第13行注冊藍圖,遇到名稱為register_bp的藍圖,隨后代碼去__init__文件中找到該藍圖第4行,但是操作藍圖的視圖加載不出來,所以程序會報錯。所以要在__init__文件中,創建完藍圖之后,導入藍圖視圖模塊

    from flask import Flask,Blueprint#創建藍圖,對應的register目錄 register_bp=Blueprint('register',__name__)from register.register import register

    操作藍圖代碼塊(register.py)

    from flask import Flask,Blueprint from register import register_bp#藍圖上操作,注冊路由 @register_bp.route('/') def register():return "注冊頁面"

    注冊藍圖代碼塊(app.py)

    from flask import Flask from users import * from order.order_func import * from login import login_bp from register import register_bp app = Flask(__name__)#注冊藍圖 app.register_blueprint(user_bp,url_prefix='/users')#在應用對象上注冊藍圖 app.register_blueprint(register_bp,url_prefix='/register')@app.route('/') def hello_world():return 'Hello World!'if __name__ == '__main__':app.run(debug=True)

    3、藍圖中的靜態資源和模板

    和應用對象不同,藍圖對象創建時不會默認注冊靜態目錄的路由。需要我們在 創建時指定 static_folder 參數。
    例如

    register_bp=Blueprint('register',__name__,static_folder='static',template_folder='templates')

    案例:

    創建藍圖代碼塊

    from flask import Flask,Blueprint#創建藍圖,對應的register目錄 register_bp=Blueprint('register',__name__,static_folder='static',template_folder='templates')from register.register import register

    定義藍圖視圖代碼塊

    from flask import Flask,Blueprint from register import register_bp#藍圖上操作,注冊路由 @register_bp.route('/') def register():return "注冊頁面"

    注冊藍圖代碼塊

    from flask import Flask from users import * from order.order_func import * from login import login_bp #from register.register import register_bp from register import register_bpapp = Flask(__name__)#在應用對象上注冊藍圖 app.register_blueprint(login_bp,url_prefix='/login')#在應用對象上注冊藍圖 app.register_blueprint(register_bp,url_prefix='/register')@app.route('/') def hello_world():return 'Hello World!'if __name__ == '__main__':app.run(debug=True)

    啟動項目,訪問靜態文件

    附目錄結構

    總結

    以上是生活随笔為你收集整理的【Flask】创建一个蓝图的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。