Flask 單元測試 unittest_Max行銷誌

【Flask 教學】實作 Flask 單元測試 Unit Test

一. 環境設置 Flask 套件選擇和安裝 此次選擇使用的是 Flask-Testing,此套件將 Python 內建的 Unittest 進行封裝,相較於 pytest 優點在建立 create_app 的時候非常簡單易懂。 Flask-Testing — Flask-Testing 0.3 documentation 此次架構配置 會在專案中建立新資料夾 tests,並將所有的單元測試 py 檔放置於此資料夾內,此次架構上會搭配 Flask 工廠模式使用。 有關於 flask 工廠模式的好處和使用方法,可以參考此篇:【Flask 教學】實作 Flask Application Factories 工廠模式 | Max行銷誌 二. 進入主題 Flask 實作單元測試 實作步驟一. 配置 m […]

閱讀全文
flask application factory 工廠模式_Max行銷誌

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

ㄧ. Flask 為什麼要使用工廠模式? 當需要切換測試環境,或是有許多不同版本配置的 Flask Application 時,官方推薦使用 Application Factories。Application Factories — Flask Documentation (1.1.x) 1. 什麼是 工廠模式 設計模型 關於工廠模式 – 維基百科 的補充: 建立物件可能會導致大量的重複代碼,可能會需要複合物件存取不到的資訊,也可能提供不了足夠級別的抽象,還可能並不是複合物件概念的一部分。工廠方法模式通過定義一個單獨的建立物件的方法來解決這些問題。 簡單來說就是利用工廠模式的設計,當傳入不同參數時,會取得不同的實例。 2. 舉個 Flask 工廠模式的例子 當使用工廠模式後 ma […]

閱讀全文
flask-blueprints-Max行銷誌

【Flask 教學】實作 Flask Blueprints 和淺談 Circular Imports

一. 從簡單的 Flask 開始 首先來看一個大家熟悉且單純的 Flask,運行 flask run 後,連線 http://127.0.0.1:5000/ 後,在網頁上會得到 foo 的字詞 app.py 1.當 Flask 架構越來越龐大… 但是隨著網站架構越來越龐大,把所有的 route 都放在 main.py 裡面,在維護上會有很大的困擾,所以我們開始試著把部分功能切到另外一個 py 檔案裡。 開始將 route 切出來,不再都集中在 app.py 內: app.py userdata.py 運行 flask 連線 http://127.0.0.1:5000/auth 會發生 Not Found 的錯誤 會發生這個原因,是因為 import 循環衝突的問題造成,如下圖當運行 flas […]

閱讀全文
GCP部署Flask_Nginx_uWSGI_Max行銷誌

【Flask 教學】實作 GCP 部署 Flask + Nginx + uWSGI

前言 在 GCP 上部署 Flask 時踩了不少的雷坑,所以此篇寫得特別詳細,照著步驟走一定可以部署完成!期望能幫助到也正在學習如何在 GCP 上部署 Flask + Nginx + uWSGI 架設 Server 的朋友! 另外之前也有寫過一篇用 Docker 部署 Flask 的文章 (附完整程式碼),推薦給大家: 【Flask教學系列】實作 Docker-compose (Flask+Nginx+PostgreSQL) 一. GCP 建置虛擬主機 1.1 在 GCP 上新建立一台 VM,我們這次選用 f1-micro (1 vCPU,614 MB記憶體) 最小型的主機,每個月會花費 150 台幣左右。 1.2 作業系統選用預設的 Debian 版本是 Linux 10 (buster) […]

閱讀全文