Django -- 從平凡到超凡

序言

作者:唐元亮
最近更新:2019-9-13

「Django -- 從平凡到超凡」是一部內容涵蓋非常完整的教材, 主要以初學者為對象,包括網際網路概念、系統開發環境設置、 Django 的技術、版本控制、與雲端部署等,一步一步引導讀者建置一個部落格系統。過程中,不僅有明確的系統開發步驟, 更加入了許多概念的分析及闡述,這是本教材和一般教材非常不一樣的地方:觀念與技術並重, 這讓讀者在熟練技術的過程中,也能正確的了解系統開發的觀念。

Django 是以 Python 語言為基礎的高階框架,協助您快速的完成系統開發, 她是「有時間壓力的完美主義者最適合的框架」。 使用 Django 讓您獲得超乎想像的開發速度,所產生的系統不僅安全性高,且因 Django 簡潔而乾淨的架構設計, 使您的系統未來具有卓越的延展性,是個非常優雅且效能極高的開發框架。

∗ 先修課程

本教材假設讀者已熟悉 Python 3 程式語言以及 HTML 與 CSS 網頁技術。

∗ 教材特色

系統開發步驟與說明非常簡潔:盡量降低學習障礙。

以註解方式深入闡述:在必要之處加入註解,以提供額外資訊或解釋較為深入的概念。

涵蓋議題超越 Django:在必要之處也加入了許多開發者需要具備的知識或技術,這些已超出了 Django 的範疇,但卻是系統開發過程中必定會面臨的問題,應該要一併了解與學習。

內容適合學生或初學者:因為作者在大學授課,多年的授課經驗讓本教材的內容一再修正與淬鍊, 非常適合學生或初學者。

內容適合專業人士:因為作者多年執行產學合作計畫,帶領團隊為許多公司或機構開發資訊系統, 所使用的都是最新技術並且均符合業界標準,非常適合專業人士參考。

最佳的技術選擇、運用、與導入:如何運用 Django 或各種工具或技術, 其實都是程式設計師主客觀的選擇。在系統開發過程中, 程式設計師常常面臨如何選擇工具或如何導入某項技術等問題。就此問題,作者均客觀分析相關工具或技術,並且一再搜尋、比較、測試、與調校, 務必去蕪存菁,以達到最佳的搭配與最少量的安裝。因此,本教材所採用的技術與工具都算是最佳化了。

∗ 系統開發所使用的工具

▸ 作業平台:Ubuntu 18.04,Windows 10, Mac

▸ 整合式開發環境 (Integrated development environment, IDE): Eclipse + PyDev

▸ 後端程式語言:Python 3

▸ 後端 Web 框架 (Web framework):Django 3

▸ 資料庫系統:Postgres

▸ 前端網頁相關技術: HTML5, CSS3, JavaScript

▸ 版本控制 (Version control) 服務:Github

▸ PaaS 雲端服務:Heroku

∗ 教材內容的字體慣例

▸ 字體顏色

User inputs:使用者的輸入
System messages:系統回覆的訊息
Files or directories:目錄或檔案
Code:程式碼
Important, added, or modified code:重要、新增、或修改的程式碼

▸ 左側灰直線:Ubuntu、Windows、與 Mac 執行或設定的對照

▸ Ubuntu 與 Mac 作業系統均以斜線格式表示目錄或檔案的路徑,但 Windows 系統則以反斜線表示, 除了在必要的地方以反斜線格式呈現路徑,否則本教材中一律以斜線格式表示路徑

∗ 教材主要更新:

  1. 2018-1-14:Django 1.11 改為 Django 2
  2. 2018-2-10:第 11 章「使用者認證」中,放棄使用 UserProfile model 儲存使用者資料, 改為客製化 User(UserAbstract) model
  3. 2018-4-18:作業系統改為 Ubuntu 18.04
  4. 2018-7-3:Eclipse IDE 改為 Photon
  5. 2018-11-15:openjdk-8 改為 openjdk-11
  6. 2018-12-26:加入 Windows 作業系統的相關操作
  7. 2019-1-7:Heroku CLI 安裝指令更改
  8. 2019-6-5: 加入 Mac 作業系統的相關操作
  9. 2019-8-12: 將原先第 10 章的「範本繼承」挪至第 7 章
  10. 2019-9-13:Django 2 改為 Django 3



∗ 附註:

  1. 歡迎您對本教材提供指正或建議,請直接以電子郵件 yltang52@gmail.com 聯絡作者
  2. 感謝我的學生張庭綺、劉曄珊、江伶娸、與劉靜瑜協助設計、編輯、與校正教材
  3. 感謝我的另一半提供許多頁面元素及網頁設計的想法,更重要的,一直以來對我的支持
  4. 謹將此教材獻給我敬愛的父親