Django - 30天教學課程
課程大綱
第一週:基礎入門
Day 1: 環境設置與基礎概念
- 安裝 Python 與 Django
- 理解 Django 架構 (MVC/MVT 模式)
- 創建第一個 Django 專案
- 啟動開發伺服器
Day 2: Django 應用程式結構
- 專案與應用的區別
- 創建與註冊應用
- Django 的 URL 路由系統
Day 3: 視圖與模板
- 寫一個簡單的視圖函數
- 使用模板顯示 HTML
- 模板語法:變數、過濾器與標籤
Day 4: 模型與資料庫
- ORM 概念
- 設計模型與資料表
- 使用 SQLite 與 PostgreSQL
- 執行遷移 (
makemigrations
和migrate
)
Day 5: 管理後台
- 使用
django.contrib.admin
- 自定義模型管理界面
- 新增/編輯/刪除數據
Day 6: 表單與驗證
- 使用 Django 表單 (
forms.Form
與forms.ModelForm
) - 表單驗證
- 顯示與提交表單
Day 7: 練習專案 - 簡單的 Blog 系統
- 設計 Blog 應用的基本結構
- 實作文章列表與詳情頁面
第二週:進階功能
Day 8: 靜態文件與媒體文件
- 配置靜態文件 (CSS/JS)
- 配置媒體文件 (上傳圖片)
Day 9: 用戶認證
- Django 的用戶系統
- 使用
django.contrib.auth
進行登入/登出 - 建立註冊系統
Day 10: Django 許可權系統
- 使用內建的權限與群組
- 自定義權限邏輯
Day 11: 中介軟體 (Middleware)
- Middleware 的作用與工作流程
- 自定義 Middleware
Day 12: 分頁與快取
- 實現分頁功能
- 使用 Django 的快取系統提升性能
Day 13: REST API 基礎
- 介紹 RESTful 架構
- 使用 Django REST Framework (DRF)
- 建立簡單的 API 端點
Day 14: 練習專案 - RESTful API
- 實作 Blog 系統的 API (文章列表與詳情)
第三週:實作與最佳實踐
Day 15: 測試 Django 應用
- 單元測試 (
unittest
) - 測試視圖與模型
- 使用
pytest
強化測試
Day 16: 異步 Django
- 介紹 Django 的異步功能
- 編寫簡單的異步視圖
Day 17: 整合前端框架
- 使用 Vue.js 與 Django 整合
- 使用 Django 提供 API,Vue.js 渲染前端
Day 18: 部署 Django 應用
- 使用 Gunicorn 和 Nginx 部署
- 配置 PostgreSQL 與伺服器環境
Day 19: 使用 Docker 容器化
- 創建 Django Dockerfile
- 使用 Docker Compose 啟動 Django + PostgreSQL
Day 20: 性能優化
- 優化查詢性能
- 使用索引和快取
- 減少 SQL 查詢次數
Day 21: 安全性實踐
- 防範 CSRF、XSS 與 SQL 注入
- 配置 HTTPS 與使用安全 Headers
第四週:專案實作
Day 22: 專案規劃
- 需求分析
- 設計資料模型與應用結構
Day 23: 使用者系統實作
- 用戶登入、註冊與管理
- 使用第三方登入 (Google, Meta, LINE)
Day 24: 管理後台設計
- 自定義後台界面
- 為管理者提供報表功能
Day 25: 內容管理系統
- 創建文章類型與分類系統
- 增加標籤功能與搜尋功能
Day 26: REST API 開放功能
- 設計開放的 API,支援使用者創建內容
- 實現 JWT 驗證
Day 27: 前端整合
- 使用 Vue.js 建立互動式界面
- Vue 與 Django API 整合
Day 28: 部署與測試
- 部署至 AWS 或 Heroku
- 測試應用程式穩定性
Day 29: 專案優化與回顧
- 總結專案問題
- 優化代碼結構與性能
Day 30: 專案展示
- 展示完成的專案
- 提交 GitHub 與撰寫技術文件
課程重點
- 理解 Django 的核心概念與功能。
- 掌握後端開發的流程,包括設計、測試與部署。
- 建立完整的全棧應用,整合 Django 與前端框架 (Vue.js)。
- 強化日常開發的 Debug 與最佳實踐。
本文章以 CC BY 4.0 授權