深入了解Python?Flask框架之藍圖
隨著Flask項目越來越復雜,把所有視圖函數(shù)放在一個應用文件中會很不方便我們管理,所以需要對程序進行模塊化的處理。Flask內(nèi)置了一個模塊化處理的類——Blueprint藍圖。
Blueprint 是一種組織一組相關視圖及其他代碼的方式。與把視圖及其他代碼直接注冊到應用的方式不同,藍圖方式是把它們注冊到藍圖,然后在工廠函數(shù)中把藍圖注冊到應用。
簡單來說就把app應用分為很多個小模塊,把這些小模塊放在一個包里,這個包叫做藍圖,如下圖所示:

項目目錄如下圖所示:

這里創(chuàng)建了一個名為apps的包,我們這個包稱為藍圖,在這個包中,我們又創(chuàng)建了三個包,那么我們?nèi)绾伟阉{圖與app.py聯(lián)系起來呢。這時我們就要通過init.py初始化文件來把藍圖與app.py。
首先我們在user包中創(chuàng)建一個視圖函數(shù)文件名為view,代碼如下所示:
from flask import Blueprint
user_bp= Blueprint('user',__name__)
首先導入Blueprint包,再通過Blueprint()方法來定義變量user_bp為藍圖對象。
init.py初始化文件代碼如下所示:
from flask import Flask
from apps.user.view import user_bp
?
def create_app():
app=Flask(__name__,template_folder='../templates',static_folder='../static')
?
#藍圖
app.register_blueprint(user_bp)
return app
首先我們導入user中的view對象user_bp,自定義函數(shù)create_app()并創(chuàng)建一個app對象,然后通過app.register_blueprint()方法將藍圖對象綁定在app對象上。
注意:由于init.py初始化文件與static靜態(tài)文件、templates模板文件不在同一級,所以需要重新指定靜態(tài)文件與模板文件的位置。
接下來編寫app.py啟動文件,代碼如下所示:
from flask import Flask
from apps.user.view import user_bp
?
def create_app():
app=Flask(__name__,template_folder='../templates',static_folder='../static')
?
#藍圖
app.register_blueprint(user_bp)
return app
代碼很簡單,直接導入view文件中的create_app并調(diào)用create_app()。
這樣app.py文件就和藍圖包聯(lián)系起來了。
注意:上面的文件名、藍圖名、視圖函數(shù)名都可以是任意的。
那么我們藍圖的視圖函數(shù)有什么變化呢?
以上面的view視圖函數(shù)文件為例,其代碼內(nèi)容如下所示:
from flask import Blueprint, request, render_template, redirect
from apps.user.model import User
user_bp= Blueprint('user',__name__) #藍圖對象
@user_bp.route('/')
def hello():
return '你好'
與之前的在app.py中寫視圖函數(shù)將比,將之前的@app.route()改為藍圖對象名.route(),其他的就幾乎一樣。
總結(jié)
本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關注腳本之家的更多內(nèi)容!
相關文章
python統(tǒng)計函數(shù)被調(diào)用次數(shù)的實現(xiàn)
本文主要介紹了python如何統(tǒng)計函數(shù)被調(diào)用次數(shù),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-02-02
python設置windows桌面壁紙的實現(xiàn)代碼
每天換一個壁紙,每天好心情。喜歡的朋友可以參考下2013-01-01
Python基礎數(shù)據(jù)類型tuple元組的概念與用法
元組(tuple)是 Python 中另一個重要的序列結(jié)構(gòu),和列表類似,元組也是由一系列按特定順序排序的元素組成,這篇文章主要給大家介紹了關于Python基礎數(shù)據(jù)類型tuple元組的概念與使用方法,需要的朋友可以參考下2021-07-07

