FLASK藍本使用初體驗,個人對整個構建過程的理解

fffuzera發表於2024-12-03
  • 考慮到後來需要寫的專案越來越大了,越來越複雜的內容都塞在一起,到時候改起來折磨的是我自己,於是嘗試使用藍圖來構建一個專案。

  • 藍本是什麼?一個沒有例項化的物件,但是這個物件裡面已經包含了所有的功能,只需要例項化(註冊到程式上時)以後就可以使用。

  • 使用藍本以後的專案架構是什麼樣的?如下所示:

使用藍本後的專案檔案結構
-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 沒有問題的話專案就可以正常的執行了。

  • 從構建的過程來看,使用藍本後的專案檔案結構,更加清晰的劃分了每一個模組需要執行的功能,如果有內容上的更改,則進入到對應的模組直接更改即可。如果還有啥改進的空間,那就是輔助函式那邊,還能劃分的再清晰一點。總的概括起來,就是建立藍本,配置專案,註冊藍本,三步完成對藍本的使用。也許一開始並不習慣這樣的方式,但這種方式在結構上的邏輯清晰,功能界限劃分明顯,在未來專案的開發與維護過程中,大機率可以提升工作的效率。這樣只是我粗淺的理解,在使用一段時間以後,也許會有所改觀。

相關文章