號稱符合企業模式的 APIFlask (Flask) 大型專案結構


Posted by monoserve174 on 2024-07-03

標題總是要寫得很聳動,這份文案主要分享個人在系統工程師中所觀察並學到的專案結構。讓我們先看結構,再逐一討論其設計用意吧。

backend(專案名稱)/  # 涵蓋 (1) 環境 (2) 變動設定檔 (3) 專案程式
 ├── .venv/(venv)    # 虛擬環境資料夾
 ├── settings/       # 依運行改變的環境變數資料夾
 │   # 此資料夾含有帳號與隱私設定,在推到 Github 公開時要記得設定排除名單
 │   ├── settings_127.yaml  # 本地設定
 │   ├── settings_dev.yaml  # 開發設定
 │   ├── settings_prod.yaml  # 上線部屬設定
 │   └── settings_test.yaml  # 測試設定
 ├── backend/              # 專案資料夾
 │   ├── .vscode/          # VSCode 設定資料夾
 │   ├── app/              # 專案根目錄
 │   │   ├── __init__.py   # 專案程式,Apiflask (Flask) 在此完成實例
 │   │   ├── blueprints/   # 藍圖資料夾
 │   │   ├── common/       # 通用工具與變數資料夾
 │   │   ├── models/       # 資料庫模型資料夾
 │   │   ├── static/       # 靜態檔案資料夾
 │   │   ├── configs.py    # 專案設定檔程式,在此引入上層 settings 文件
 │   │   ├── extends.py    # Flask 擴充元件程式
 │   │   ├── hook_units.py # 請求上下文勾子工具程式
 │   ├── .flaskenv         # Flask 啟動環境變數
 │   ├── run.py            # 啟動專案程式,依專案設定 WSGI 或 SOCKETIO
 │   └── run_utils.py      # 啟用專案工具程式,在此實作 terminal Log 紀錄
 └── pyproject.toml    # poetry 套件管理生成,涵蓋 python 版本資訊與專案套件資訊

個人開發採用 pyenv poetry 專案開發流,其中 pyenv 管理 python 版本、poetry 管理套件依賴。透過上述結構,將整個專案透過模組化設計與分離設定文件,將更容易擴展與維護。主要規劃為

  1. 專案程式環境設定
  2. 專案環境變數管理資料夾
  3. 專案開發資料夾

#Mega-Project #Folder-Structure #APIFlask







Related Posts

JAVA筆記_Lambda

JAVA筆記_Lambda

C++筆記 俄羅斯娃娃

C++筆記 俄羅斯娃娃

迭代陣列 forEach, for of, for in, map

迭代陣列 forEach, for of, for in, map


Comments