Leif Azzopardi & David Maxwell:tango With Django——a Beginner’s Guide To Web Development With Django 1.9@2017

主要論點闡述:如何使用 Python 和 Django 進行 Web 開發入門

這本名為《如何與 Django 1.9 共舞:Python/Django 入門指南》的書籍,其核心論點和教學目標是提供一個實用且手把手的指南,引導 Web 開發初學者使用 Python 程式語言及其功能豐富的 Django Web 框架,從基礎概念到應用程式部署,完整建構一個實際可運行的 Web 應用程式。

  1. 以實踐為核心的學習方法: 書籍最重要的主張之一是強調「動手做」的重要性,而非僅僅是閱讀理論。作者在第一章就明確指出「這本書不是用來讀的」,而是要跟著書中的步驟實際開發應用程式。透過建構一個名為 Rango 的具體 Web 應用程式作為貫穿全書的案例,讀者將能夠在實踐中學習和掌握 Django 的各個組件和開發流程。這種方法有助於初學者更好地理解各個概念如何實際應用於一個真實的專案中。

  2. 降低 Django 學習曲線並優化工作流程: 作者指出,雖然官方文檔和其他資源豐富,但初學者常會遇到「卡關」的情況,浪費大量時間解決看似微小的問題。本書旨在填補這些知識空白,透過提供清晰的步驟、常見問題的提示和預期的結果,幫助讀者避開陷阱,顯著降低入門 Django 的門檻。此外,書籍還提煉和呈現了一系列「基本工作流程」(Basic Workflows),例如建立 Django 專案、建立應用程式、或建構數據驅動頁面等,這些標準化的流程能幫助初學者建立良好的開發習慣,提高開發效率和紀律性。

  3. 全面涵蓋 Django 核心組件與 Web 開發生態: 本書不僅教授 Django 的基礎,還將其置於更廣泛的 Web 開發生態中進行講解。讀者將學習 Django 的核心概念,包括:

    • 專案與應用程式結構: 理解 Django 專案如何由一個或多個應用程式組成。
    • Model-View-Template (MVT) 設計模式: 這是 Django 的核心架構,本書會透過實例解釋模型(資料庫互動)、視圖(業務邏輯)和模板(使用者介面)如何協同工作。
    • URL 映射: 學習如何配置 URL 模式,將使用者請求路由到對應的視圖函數。
    • 模板系統: 利用 Django 的模板語言來動態生成 HTML,包括模板變數、標籤、過濾器以及模板繼承等高級概念,減少重複代碼(符合 DRY 原則)。
    • 靜態文件與媒體文件處理: 配置和管理 CSS、JavaScript 和圖片等靜態資源,以及使用者上傳的媒體文件。
    • Models 與 ORM: 定義資料庫模型,並使用 Django 的物件關聯映射 (ORM) 層進行資料的增刪改查,而無需直接編寫 SQL。
    • Forms 處理: 學習 Django 強大的表單處理功能,如何從模型自動生成表單(ModelForm),處理使用者輸入,進行資料驗證和保存。
    • 使用者認證系統: 整合 Django 內建的使用者認證模組,實現使用者註冊、登入、登出和權限控制。書籍也提及並演示了如何使用第三方套件 django-registration-redux 來簡化認證流程的開發。
    • Cookies 與 Sessions: 理解 HTTP 的無狀態性,並學習如何使用 Cookies 和 Django 的 Session 框架來維持使用者會話狀態。
    • AJAX 與 JQuery: 引入前端技術,學習如何使用 JQuery 庫來簡化 JavaScript 操作,並實現 AJAX(非同步 JavaScript 與 XML)功能,提升應用程式的互動性和響應速度,例如實現按讚按鈕和即時搜尋建議。
  4. 整合第三方工具與服務: 為了模擬真實的 Web 開發場景,本書鼓勵並指導讀者整合多種第三方工具和服務。這包括使用 Twitter Bootstrap 這樣的 CSS 框架來快速美化應用程式介面並實現響應式設計,使用 Bing Search API 來實現站內搜尋功能,以及最終將開發好的應用程式部署到 PythonAnywhere 這樣的雲端託管平台。這些實例展示了 Django 作為一個全端框架,如何與外部服務和工具無縫協作。

  5. 強調開發環境的正確設置: 在正式開始學習 Django 程式碼之前,本書特別安排了篇幅來指導讀者設置一個合適的開發環境。這包括安裝和配置 Python(建議特定版本)、使用 Pip 管理套件、建立和啟用虛擬環境以隔離專案依賴、以及使用 Git 進行版本控制。作者認為一個穩定的開發環境是成功學習和開發的基石,因此提供詳細的步驟和排錯提示,幫助讀者打下堅實的基礎。

總之,本書的核心論點是透過一個結構化的、以專案為導向的、強調動手實踐的學習過程,讓初學者能夠有效地掌握使用 Python 和 Django 進行 Web 開發的關鍵技能,理解從環境搭建到應用程式部署的整個生命週期,並學會整合常用工具和服務來構建功能完善的 Web 應用程式。