1. 程式人生 > >Flask藍圖的用法

Flask藍圖的用法

一,藍圖的初步使用

flask框架自帶的模組Blueprint,Blueprint 是一個儲存操作方法的容器,它相當於一個縮小版的app應用,但是一個Blueprint並不是一個完整的應用,它不能獨立於應用執行,而必須要註冊到某一個應用中。

藍圖的作用:解耦,模組化開發
未使用藍圖前:所有的檢視模組都在一個檔案裡面

from flask import Flask

app = Flask(__name__)


@app.route('/')
def index():
    return 'hello world'

@app.route('/user')
def user():
    return 'user model'

@app.route('/cart')
def cart():
    return 'cart model'

if __name__ == '__main__':
    print(app.url_map)
    app.run(debug=True)

使用藍圖(如抽離出user模組):
1.新建一個user.py檔案, 建立藍圖物件

from flask import Blueprint
"""藍圖物件可看做一個縮小版的app物件"""
bp = Blueprint('user_bp', __name__) # 第一個引數為藍圖名稱,隨便取

@bp.route('user/')
def user():
    return 'user model'

藍圖名稱

2.在原檔案中匯入藍圖並將其註冊到app中

from flask import Flask
from user import bp
app = Flask(__name__)

app.register_blueprint(bp)

@app.route('/')
def index():
    return 'hello world'

註冊完之後便可通過url訪問到檢視函式啦
在這裡插入圖片描述

二:在實際開發過程中藍圖的目錄結構

前面僅僅使用了一個py檔案來編寫使用者模組,但是藍圖也可以有自己的靜態檔案和模板,它可以有更豐富的功能和更分明的功能模組。因此可一建立一個包來存放單獨的模組,目錄結構如下
在這裡插入圖片描述
最後在app所在的index.py檔案中匯入和註冊藍圖即可

三、目錄的擴充套件

藍圖可以有自己的靜態資料夾和模板資料夾
在cart模組下面再建立一個自己的靜態資料夾static和模板資料夾templates,templates指定為模板資料夾並指定模板語言為Jinjia2,此時應指明藍圖物件的其他幾個引數,如圖
在這裡插入圖片描述

附:一般只在程式主目錄放靜態檔案和模板檔案即可,簡單清晰,藍圖模組不在建立這兩個檔案以免檔案目錄結構冗餘複雜