Django Girls' Tutorial 中文版教材

什麼是 Django?

Django (/ˈdʒæŋɡoʊ/ jang-goh) 是個用 Python 寫成的,免費而且開放原始碼的 Web 應用程式框架。他是個 Web 框架 - 就是一堆零件的組成,可以幫助你輕鬆快速的開發網站。

這麼說吧,當你蓋一個網站的時候,你總是需要一些很類似的零件:使用者登入(註冊、登入、登出),網站後台,表單,檔案上傳等等。

幸運的世界上有很多人很久以前就幫你注意到這件事,Web 開發者蓋一個新的網站的時候總是面對著一樣的問題,所以他們合作開發了框架使你可以直接擁有你會用到的零件(Django 就是其中之一)。

各種框架的存在就是拯救你免於重造輪子,當你新建一個網站的時候可以減少重工。

為什麼你需要一個框架?

要真正了解 Django 事實上到底在做什麼,我們需要更了解伺服器。首先就是伺服器需要知道你想要如何來提供你的網頁。

想像一個信箱(埠 port)會偵測寄來的信(請求 request)。Web 伺服器就是在做這件事。Web 伺服器讀這些信,然後寄出相對的網頁作為回應。但是當你想要寄出某個東西,你需要一些內容,而 Django 就是再幫你產生相對應的內容。

當某個人向你的伺服器請求的時候發生了什麼?

當伺服器收到某個請求,這個請求會通過 Django,Django 則負責判斷這個請求是什麼。Django 會先收到網址然後來判斷應該要給出什麼回應。這部分是由 Django 的 urlresolver 來處理(網址其實就是所謂的 URL - Uniform Resource Locator,所以這就是為什麼這裡取名為 urlresolver )。它不聰明 - 他有一堆範例去判斷這個 URL 符合哪一個範例。Django 則查看範本,如果 URL 符合某一個,Django 就送出這個請求相對應的函數們(在這裡稱為 view

想像一個帶著信的郵差。她在街上遊走,確認每家的地址把信送給他們,如果地址對了,她就把信放進去,這就是 urlresolver 在做的事情。

view 函數中會做一些有趣的事情:我們會去資料庫中找某些資料。萬一使用者要求要更改某些資料呢?例如某封請求「拜託把我的工作敘述改一下吧」的信 - view 就會檢查你是不是允許他可以做這件事,然後你會在更新了他的工作敘述以後回傳給他一個「完成囉!」的訊息。之後 view 就會產生一個回應,Django 就會將回應送到使用者的瀏覽器上。

當然了,以上的敘述已經簡化了很多,但你也不需要知道所有技術上的細節。有一個簡單的概念即可。

所以不糾結在太多細節敘述上,我們打算就簡單的開始用 Django 做點事,就可以從中學習到更多了。