Django 最佳實踐文件#

本文為具有我個人觀點的 Django 最佳實踐,並不一定適用於所有情況。

本文件將介紹如何以最佳實踐的方式來建立一個以下列為主要目標的 Django 專案。

  • 兼容水平擴展

  • 高效

  • 高安全性

  • 易於維護

  • 易於開發

具體來說,我們將使用以下技術來達到這些目標。

  • 使用 pyenv 管理 Python 版本

  • 使用 Poetry 管理 Python 套件

  • 使用 ruff 作為 Linter 和 Formatter
  • 使用 Session 管理使用者登入狀態

  • 使用 django-allauth 管理使用者帳號
    • 可使用 Email 或 Username 來登入

    • 整合 Google、Apple、Facebook 等第三方登入

    • 追蹤使用者登入狀態、IP 位置、裝置及歷史

    • 自訂 RestAPI 以兼容 React Native

  • 整合 django-storages 管理靜態和媒體檔案
    • 使用 Backend 儲存靜態檔案

  • 整合 django-ninja
    • 使用 Router 管理 API 路由。

    • 自動產生 OpenAPI 文件。

  • 使用 Redis 作為快取資料庫
    • 使用 Redis 來儲存 Session

    • 使用底層為 C 語言的 hiredis-py 程式庫來進一步提升 Redis 效能

  • 使用 Celery 處理非同步任務