用 Django 寫網站 (MVC & MTV)概念簡介

J米的學習日記
3 min readSep 19, 2019

--

距離上次紀錄學習進度有一個月左右了!把爬蟲告一段落後,一直很想再完成一些可以 Demo 出來的作品, 能寫出一個自己的小小網站也是我心中的一個小小夢想,既然開了支票,就去實現吧!

上面這支影片算是先 Demo 網站整個架構與簡述一下 Django 是由哪三個主架構所組成, 對於寫網站的小白來說,MVC 概念是很難植入我的頭腦中的,更尤其 Python 的 Django 又是把概念轉化成 MTV ,更是讓初學者目煞煞,以下以 Django 的 MTV去一一說明並對應 MVC,如有錯誤請各位前輩指教或提問,謝謝!

MVC
  1. MTV 的 Models => 對應 MVC 的 Models

使用 MTV 這個框架跟後端資料庫溝通,不用直接寫資料庫語言,因此我們直接用 models.py 就可以下指令從資料庫作 CRUD (Create, Read , Update , Delete) 四個動作,下圖為直接在 models 內定義類別,常見會員資訊包含姓名、男女、生日、電話, __str__ 傳回姓名 ,定義完member 要記得去 admin.py 去註冊哦!

Models.py

2. MTV 的 Templates 對應 MVC 的 Views

兩者皆表示模板,我自己的理解是給使用者所看到的網頁內容,包含 HTML 、 CSS 、 JavaScript 等等,因此在專案內 .html 的都是放在 templates 的資料夾目錄下。

3. MTV 的 Views 對應 MVC 的 Controller

之前一直把兩個 Views 以為是一樣的,希望初學的你不要跟我一樣走彎路,Django 的 Views 指的是控制單元,我的解讀為作為與 models 和 templates 中間溝通的中介項目,以下圖 views.py 其中 member_index 來說明。

(1) 與 models.py 作溝通,提取資料庫的內容

(2) 導到 Templates 的模板,決定要呈現給使用者哪個畫面。

views.py

其實,Django 核心概念看懂後,發現也沒這麼困難,剛開始學的前五天,真的是丈二金剛,摸不著頭緒!
下一篇主要是應用與介紹自己的作品加上一些寫網站所遇到的問題。
不免俗最後還是喝個雞湯,勵志自己,激勵他人!!

小孩:老師,妳被派來這裡教我們,是不是英語不好,數學很爛啊?
老師:我以前數學經常不及格,所以我討厭數學,可是我越討厭數學,我就越不會,後來我花了很多時間,逼自己去了解它、接近它,跟它做朋友,把它的底摸得清清楚楚,就把它打敗了。所以不管是英文也好,數學也好,你們不要因為考得不好,就討厭它、避開它,感覺上好像自己被它們打敗了,
其實它們都沒有打敗你,是你自己打敗了你自己。

--

--