-
考慮到後來需要寫的專案越來越大了,越來越複雜的內容都塞在一起,到時候改起來折磨的是我自己,於是嘗試使用藍圖來構建一個專案。
-
藍本是什麼?一個沒有例項化的物件,但是這個物件裡面已經包含了所有的功能,只需要例項化(註冊到程式上時)以後就可以使用。
-
使用藍本以後的專案架構是什麼樣的?如下所示:
使用藍本後的專案檔案結構
-project_file # 專案的檔名
-blueprints
-xx.py # 這部分包含了服務的主要功能,如使用者的註冊,資料的處理等等
-templates
-xx.html # 這部分包含了網頁
-static # 靜態檔案
__init__.py
xx.py # 這部分包含了一些支撐服務執行的函式
.flaskenv
- 建立藍本,我們在blueprints資料夾下建立藍本,根據服務需要實現的功能,分別建立不同的藍本,如使用者的驗證與主介面的展示等。
藍本的建立
# 建立藍本
from flask import Blueprint
view = Blueprint('view', __name__)
# 新增處理函式
@view.route('/')
def index():
pass
- 完成藍本的建立以後,要註冊藍本,這時回到專案資料夾下的
__init__.py
,在啟動的函式中,為藍本註冊。下面是一個簡單的例子:
為藍本註冊的簡單例子
# 在專案資料夾下__init__.py中的啟動函式中,註冊藍本
from project_name.blueprints.view import view
def create_app():
...
app = Flask('project_file')
app.register_blueprints(view) # 註冊
-
上述的例子省略掉了很多專案配置的環節和擴充套件的初始化環節,這兩個環節可以透過建立py檔案在裡面配置,最後在create_app裡呼叫即可。
-
最後,在專案資料夾主目錄中,直接建立一個
.flaskenv
檔案,直接建立就好,系統會自動識別為FLASKENV
檔案。在檔案裡,配置專案啟動的引數,例如:
FLASK_APP=project_file
FLASK_ENV=development
-
啟動命令列,進入專案的虛擬環境,
flask run
沒有問題的話專案就可以正常的執行了。 -
從構建的過程來看,使用藍本後的專案檔案結構,更加清晰的劃分了每一個模組需要執行的功能,如果有內容上的更改,則進入到對應的模組直接更改即可。如果還有啥改進的空間,那就是輔助函式那邊,還能劃分的再清晰一點。總的概括起來,就是建立藍本,配置專案,註冊藍本,三步完成對藍本的使用。也許一開始並不習慣這樣的方式,但這種方式在結構上的邏輯清晰,功能界限劃分明顯,在未來專案的開發與維護過程中,大機率可以提升工作的效率。這樣只是我粗淺的理解,在使用一段時間以後,也許會有所改觀。