關於django的 mvc mvt 的優越感 !

如果你要開發一個好的網站或網絡應用,你就必需瞭解經典的軟件開發所遵循的MVC 設計模式。Django作爲最優秀的基於Python語言的網站開發框架,當然也遵循了這種設計模式。

MVT MVC 是爲了應用得到複用, 應用之間的解耦, 接口的複用 ,擴展性之分強大, 這就是django的魅力

應用之間相互沒有關係,  每個應用相互獨立,  和url進行綁定.靈活, 哪裏用去哪裏綁定, 用哪個綁定哪個.

比如在xadmin中, 就將這一特點表現的淋漓盡致.

註冊應用, 可分爲三種, django自帶的應用模塊   ,   引入註冊的第三方應用  ,  自己寫的應用模塊

並且下載的第三方的應用 模型類直接遷移, 直接migrate


什麼是MVC模式? 它有什麼優點?


MVC即 Model-View-Controller(模型-視圖-控制器) 模式。


  • Model (模型) 簡而言之即數據模型。模型不是數據本身(比如數據庫裏的數據),而是抽象的描述數據的構成和邏輯關係。通常模型包括了數據表的各個字段(比如人的年齡和出生日期)和相互關係(單對單,單對多關係等)。數據庫裏的表會根據模型的定義來生成創建。

  • View (視圖) 主要用於顯示數據,用來展示用戶可以看到的內容或提供用戶可以輸入或操作的界面。數據來源於哪裏?當然是數據庫啦。那麼用戶輸入的數據給誰? 當然是給控制器啦。

  • Controller(控制器)是應用程序中處理用戶交互的部分。通常控制器負責從視圖讀取數據,控制用戶輸入,並向模型發送數據(比如增加或更新數據表)。


如果把MVC比喻成一個糉子,那麼View就是最外面一層的綠色玉米葉,是吃貨們可以直接看到的。Controller就是中間那層熟糯米,而糉子的核心自然是最裏面那一層的肉餡Model模型了。現在大家知道中學和大學數學建模的重要性了吧?


MVC最大的優點是實現了軟件或網絡應用開發過程中數據,業務邏輯和界面的分離,使軟件開發更清晰,也是維護變得更容易。這與靜態網頁設計中使用html和css實現了內容和樣式的分離是同一個道理。


Django網站開發是如何遵循MVC設計模式的?


Django網站開發全靠四件套: Model(模型), URL(鏈接), View(視圖) 和Template(模板)。它們看似與MVC設計模式不太一致,其實本質是相同的。但是Django的View和經典的View確實有非常大的不同。Django四件套與經典的MVC對應關係如下。

  • Django Model(模型): 這個與經典MVC模式下的Model差不多。

  • Django URL + View(視圖): 這兩個合起來與經典MVC下的Controller更像。原因在於Django的URL和View合起來才能向Template傳遞正確的數據。用戶輸入提供的數據也需要Django的View來處理。

  • Django Template(模板): 這個與經典MVC模式下的View一致。Django模板用來呈現Django view傳來的數據,也決定了用戶界面的外觀。Template裏面也包含了表單,可以用來蒐集用戶的輸入。


Django網站開發應先寫URL還是先寫View?


使用Django開發網站的第一步絕對是定義模型(Model),  如果寫個不需要使用數據庫的小應用,也完全可以不定義模型,直接寫URL和View, 比如下面打印Hello world的案例。那麼問題來了,我們一般該先寫URL還是View呢?答案是兩者都可以,完全取決於個人偏好。一般來說喜歡從上至下思考的人都喜歡先寫URL,小編我就是這樣的人。那麼你呢?歡迎留言啊。

  1. #helloworld/urls.py
  2. from django.urls import path
  3. from . import views
  4. urlpatterns = [
  5. path('', views.index, name='index'),
  6. ]
  1. #helloworld/views.py
  2. from django.http import HttpResponse
  3. def index(request):
  4. return HttpResponse("Hello world!")
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章