Django - 如何在 Django 中實現訊號(Signals)
Django 的 Signals(訊號) 是一種基於事件的工具,允許應用內部的組件互相通信,而不需要直接耦合。例如,當模型的某些操作(如保存或刪除)完成後,可以使用訊號自動觸發某些操作。 常見使用場景 記錄用戶操作:當用戶登入或登出時記錄日誌。 數據處理:在模型保存時自動更新某些欄位。 通知系統:在某些條件滿足時發送電子郵件或其他通知。 Django 中的訊號類...
Django 的 Signals(訊號) 是一種基於事件的工具,允許應用內部的組件互相通信,而不需要直接耦合。例如,當模型的某些操作(如保存或刪除)完成後,可以使用訊號自動觸發某些操作。 常見使用場景 記錄用戶操作:當用戶登入或登出時記錄日誌。 數據處理:在模型保存時自動更新某些欄位。 通知系統:在某些條件滿足時發送電子郵件或其他通知。 Django 中的訊號類...
測試是一個開發專案中不可或缺的部分,它可以確保我們的應用在功能迭代時保持穩定性。Django 提供了強大的測試框架,讓我們能夠輕鬆地測試應用中的視圖、模型和 API。 課程目標 瞭解測試的重要性和 Django 測試框架的基礎。 學習如何編寫單元測試和功能測試。 熟悉測試數據庫的使用及常見測試工具。 課程內容 1. 測試的基本概念 1.1 為什麼需要測試? ...
今天,我們將綜合運用昨天學到的 REST API 開發技巧,實作一個完整的 RESTful API 練習專案。該專案是一個簡單的 任務管理系統,用於管理待辦事項,支持 CRUD 操作、分頁以及用戶驗證。 課程目標 實現一個完整的 RESTful API,包含基本的 CRUD 操作。 支持用戶登入後才能管理任務。 加入分頁功能,提升 API 的可用性。 提供詳細的測試...
Django 提供強大的工具集來構建 RESTful API,特別是使用 Django REST Framework (DRF) 時,開發過程變得更加簡單與高效。本日課程將帶你入門 REST API 的基本概念與實作,為日後進階課題奠定基礎。 課程目標 瞭解 RESTful API 的基本概念。 學習 Django REST Framework 的基礎用法。 實現簡單的...
今天我們將學習如何在 Django 中實現分頁和快取功能。分頁可以有效地將大量數據分成多頁顯示,而快取則能夠顯著提高網站的性能,減少對資料庫的頻繁查詢。 課程目標 瞭解 Django 分頁系統的基本用法。 學會實現分頁功能並在前端顯示分頁按鈕。 探索 Django 快取框架,實現快取優化數據讀取。 瞭解不同的快取配置選項及其應用場景。 課程內容 1. 分頁...
Django 的訊息框架提供了一種簡單的方式來在請求和回應期間顯示一次性提示訊息,常用於用戶通知(例如:登入成功、表單提交成功、錯誤警告等)。 課程目標 瞭解 Django 訊息框架的基本概念。 學習如何在視圖中添加訊息。 學習如何在模板中顯示訊息。 探索訊息框架的等級與自訂功能。 課程內容 1. 訊息框架概述 1.1 訊息框架的作用 訊息框架允許開發...
今天我們將學習 Django 中的重要組件——中介軟體(Middleware)。中介軟體是一種處理 HTTP 請求與回應的鉤子,能在請求到達視圖前、或回應送達瀏覽器前進行處理。通過中介軟體,我們可以實現請求攔截、回應修改、統計日誌等功能。 課程目標 瞭解中介軟體的基本概念與工作原理。 探索內建的中介軟體及其用途。 實現自訂中介軟體來滿足特定需求。 課程內容 1...
今天我們將探討 Django 的許可權系統,它提供了強大的功能來管理使用者的操作權限。我們將學習如何設定模型的許可權、自訂許可權,以及如何使用群組來簡化權限管理。 課程目標 瞭解 Django 許可權系統的基本概念。 設定內建與自訂許可權。 使用群組進行權限管理。 在視圖中進行權限檢查。 課程內容 1. Django 許可權系統概述 Django 的許可...
今天我們將學習如何在 Django 中實現用戶認證功能,包括用戶註冊、登入、登出,以及使用者授權。這是任何現代應用程式的核心功能,對於加強應用程式的安全性非常重要。 課程目標 瞭解 Django 預設的用戶認證系統。 實現用戶註冊、登入與登出功能。 在視圖中使用裝飾器進行授權檢查。 自訂用戶模型(如有必要)。 課程內容 1. Django 的用戶認證系統 ...
今天我們將學習如何在 Django 中處理靜態文件和媒體文件。靜態文件(如 CSS、JavaScript、圖片等)和媒體文件(如用戶上傳的圖片或檔案)是任何網頁應用程式不可缺少的一部分。 課程目標 瞭解 Django 中靜態文件與媒體文件的作用與配置。 設置靜態文件與媒體文件的目錄。 在模板中引用靜態文件。 實現用戶上傳媒體文件的功能。 課程內容 1. 靜...