文章

Django - 30天教學課程


課程大綱

第一週:基礎入門

Day 1: 環境設置與基礎概念

  • 安裝 Python 與 Django
  • 理解 Django 架構 (MVC/MVT 模式)
  • 創建第一個 Django 專案
  • 啟動開發伺服器

Day 2: Django 應用程式結構

  • 專案與應用的區別
  • 創建與註冊應用
  • Django 的 URL 路由系統

Day 3: 視圖與模板

  • 寫一個簡單的視圖函數
  • 使用模板顯示 HTML
  • 模板語法:變數、過濾器與標籤

Day 4: 模型與資料庫

  • ORM 概念
  • 設計模型與資料表
  • 使用 SQLite 與 PostgreSQL
  • 執行遷移 (makemigrationsmigrate)

Day 5: 管理後台

  • 使用 django.contrib.admin
  • 自定義模型管理界面
  • 新增/編輯/刪除數據

Day 6: 表單與驗證

  • 使用 Django 表單 (forms.Formforms.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 授權