簡單來說,Django 就是一個 python 的框架,主要功用是讓人能輕鬆用 python 建立網站。
個人覺得 Django 有一個很棒的地方,那就是它預先將複雜的處理過程,包裝成一個個的套件和方法,多數情況下只要引用它們就好。因此,可以把心思放在設計版面或其他事,而不必去糾結要怎麼寫複雜的 python 程式碼來完善網頁功能。
大學上程式課比較常接觸到的是MVC架構,而Django則是MVT
架構。MVT
分別是Model
、View
、Template
。
在 Django 裡,要做到CRUD
的操作,並非是直接下SQL
指令,而是透過ORM
的方式進行。使用ORM
可以讓我們省略繁複的SQL
指令就能完成簡單的資料操作。當然使用ORM
也不全然只有好處,關於ORM
的其他內容之後會透過番外篇說明。
models
代表的是很多個class
,1個class
就代表1個model
(資料表),而它們都被放在models.py
這個檔案裡面。
前面提過View會決定怎麼處理 HttpRequest
和 HttpResponse
,這關係到瀏覽者能看到什麼網頁、網頁上該顯示什麼資料、如何回應網頁上的操作等等。
views
代表的是很多個function
,1個view
就是1個function
,而它們都被放在views.py
這個檔案裡面。
訪問者能不能看到漂亮的網頁,決定在Tempalte
設計的好壞與否。
跟前面不一樣的是並沒有templates.py
這個檔案,每個template
其實就是我們熟悉的好朋友.html
檔,而這些.html檔都被收錄在名為templates
的資料夾裡面。
除了MVT
之外,我們還需要設定網頁的地址,也就是urls
才能正常的透過網址拜訪特定網頁。
在Django裡面,寫完.html
檔後想直接用localhost+檔案路徑
去瀏覽網頁是行不通的,因為Django根本不知道要怎麼回應請求。
在拜訪網頁前,我們必須讓Django知道這個路徑(網址)要用什麼view
去回應,那要怎麼做到這件事呢? 這就要到名為urls.py
的檔案裡面去做設定了。
這邊只先稍微帶過,後續透過實際操作會更容易知道它們在做什麼。
(簡易版)
urls.py
裡面尋找要用哪個view
作回應view
會確認跟這次request
有關的model
,需要的model
會從models.py
被import進來model
資料,接下來會被view
傳到特定的template
裡model
資料的特定template
會被view
以HttpResponse
的形式回傳到瀏覽器至於Django的發展歷史,有興趣的話可以自行上網查閱~