.

iT邦幫忙

0

Django RESTful API 入門筆記 - 3 - Django檔案架構

  • 分享至 

  • xImage
  •  

🔹 Django 專案初始化與模組設計

以開發部落格為例,採用 MVT(Model-View-Template)架構,每個 APP 代表一個獨立功能模組,專案名稱:blog,帳號管理 APP:users,文章管理 APP:posts

🔹 建立 Django 專案與 APP

建立 Django 專案

django-admin startproject blog

建立 APP(模組化管理)

python manage.py startapp users
python manage.py startapp posts

🔹 Django 的檔案架構

一般 Django 專案的檔案架構

blog/
│── manage.py               # Django 管理指令
│── blog/                   # 主專案目錄
│   │── settings.py         # 專案設定
│   │── urls.py             # 全域路由設定
│   │── wsgi.py             # WSGI 伺服器入口
│   │── asgi.py             # ASGI 伺服器入口(適用於 WebSocket)
│── users/                  # 用戶管理 APP
│   │── admin.py            # Django 管理後台
│   │── apps.py             # APP 設定
│   │── forms.py            # 表單處理
│   │── models.py           # 定義資料庫模型
│   │── tests.py            # 測試檔案
│   │── views.py            # 處理請求與回應
│   │── urls.py             # APP 層級路由
│── posts/                  # 文章管理 APP
│   │── admin.py       
│   │── apps.py        
│   │── models.py      
│   │── forms.py       
│   │── tests.py       
│   │── views.py      
│   │── urls.py        
│── templates/               # HTML 模板
│   │── base.html
│   │── index.html
│── static/                  # 靜態檔案(CSS, JS, Images)
│── media/                   # 上傳的媒體檔案
│── db.sqlite3               # 預設 SQLite 資料庫
│── .env                     # 環境變數設定

Django RESTful API 專案的檔案架構

blog/
│── manage.py                # Django 管理指令
│── blog/                    # 主專案目錄
│   │── settings.py          # 專案設定
│   │── urls.py              # 全域路由設定
│   │── wsgi.py              # WSGI 伺服器入口
│   │── asgi.py              # ASGI 伺服器入口(適用於 WebSocket)
│── users/                   # 用戶管理 APP
│   │── admin.py             # Django 管理後台
│   │── apps.py              # APP 設定
│   │── authentication.py    # API 認證機制
│   │── forms.py             # 表單處理
│   │── models.py            # 資料庫模型
│   │── permissions.py       # API 權限管理(如 JWT、OAuth)
│   │── serializers.py       # 負責數據轉換 (Model <-> JSON)
│   │── tests.py             # 測試檔案
│   │── views.py             # API 處理邏輯
│   │── urls.py              # APP 層級路由
│── posts/                   # 文章管理 APP
│   │── admin.py
│   │── apps.py
│   │── forms.py       
│   │── models.py
│   │── serializers.py
│   │── tests.py       
│   │── views.py
│   │── urls.py
│── static/
│── media/
│── db.sqlite3
│── .env

🔹 重要檔案功能介紹

檔案 功能
settings.py 專案設定(資料庫、INSTALLED_APPS、Middleware、CORS 設定等)
urls.py 全域 URL 路由設定
models.py 資料庫模型(定義 ORM)
views.py 視圖處理請求,返回 HTML 或 JSON(RESTful API)
serializers.py Django REST Framework 序列化(JSON 轉換)
permissions.py API 權限管理
authentication.py API 驗證與登入邏輯
admin.py Django Admin 設定
tests.py 測試用例
.env 環境變數(存放 API 金鑰、資料庫密碼等)
templates/ HTML 模板(適用於前後端整合專案)
static/ 靜態資源(CSS, JS, Images)
media/ 使用者上傳的檔案

🔹 RESTful API 主要差異點

檔案 功能
serializers.py 負責 Model <-> JSON 轉換
permissions.py API 權限管理(如 JWT、OAuth)
authentication.py API 驗證(如 Token、OAuth)
views.py 改為 API 處理邏輯(透過 APIViewViewSet
templates/ 通常不使用,因為前端透過 API 取得 JSON

🔹 參考文件


.
圖片
  直播研討會

尚未有邦友留言

立即登入留言