【Flask 教學】實作 Flask Application Factories 工廠模式

flask application factory 工廠模式_Max行銷誌

ㄧ. Flask 為什麼要使用工廠模式?

當需要切換測試環境,或是有許多不同版本配置的 Flask Application 時,官方推薦使用 Application Factories。Application Factories — Flask Documentation (1.1.x)

1. 什麼是 工廠模式 設計模型

關於工廠模式 – 維基百科 的補充:

建立物件可能會導致大量的重複代碼,可能會需要複合物件存取不到的資訊,也可能提供不了足夠級別的抽象,還可能並不是複合物件概念的一部分。工廠方法模式通過定義一個單獨的建立物件的方法來解決這些問題。

簡單來說就是利用工廠模式的設計,當傳入不同參數時,會取得不同的實例。

2. 舉個 Flask 工廠模式的例子

當使用工廠模式後 main.py 會改成如下:

我們如果要轉成測試環境的話,只需要將 development 改成 testing 就可以囉!

而且當 Flask 建置 Application 工廠模式後,除了環境配置容易切換外,在進行單元測試 Unittest 時也很方便。

二. 如何建立 Flask Application Factories

1. 環境建置

本次的程式碼放置於 GitHub: flask-template/template-flask-factory-Application/flask at master · hsuanchi/flask-template · GitHub

此次需安裝的 requirements 套件

此次的資料夾結構

2. Flask 工廠模式建置

▍位置:flask/main.py

▍位置:flask/app/__init__.py

可以看到 create_app 裡面首先會根據 main.py 傳來的 create_app('development') development 參數,進行載入 config 配置檔,然後 init_app(套件)、最後才是載入 Flask route 路徑。

▍位置:flask/app/config/config.py

都設置完成後,最後運行 Flask,並連線到 http://127.0.0.1:5000,如果有看到 welcome 就代表成功囉!

Windows 運行 Flask

Mac 運行 Flask

本篇參考 Flask Application 相關文件:

更多 Flask 教學相關閱讀:

▍關於 Flask 教學系列目錄:

▍關於 Flask 部署相關文章:

▍其他 Flask 相關教學:

有關 Max行銷誌的最新文章,都會發佈在 Max 的 Facebook 粉絲專頁,如果想看最新更新,還請您按讚或是追蹤唷!

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *