在大多數MVC/ORM類型系統中,django的views.py可能被稱爲控制器,它們的模板是視圖。這是他們所遵循的不同設計模式嗎?爲什麼它叫做views.py?爲什麼views.py而不是controller.py
0
A
回答
4
這個問題在FAQ回答。
的Django看上去是一個MVC框架,但你所說的控制器的 「視圖」,並查看「模板」。你怎麼不使用標準名稱 ?
那麼,標準名稱是有爭議的。
在我們對MVC的解釋中,「視圖」描述了獲取 呈現給用戶的數據。數據看起來並不一定如此,但 顯示哪些數據。該視圖描述了您看到的數據,而不是 您如何看到它。這是一個微妙的區別。
因此,在我們的例子中,「視圖」是 特定URL的Python回調函數,因爲該回調函數描述了哪些數據是 。
此外,它是明智的,從演示分開的內容 - 這就是模板進來在Django中,一個「說法」描述了 數據呈現,但鑑於通常委託給一個模板,它 描述瞭如何數據被呈現。
「控制器」在哪裏適合?在Django的情況下,它可能是框架本身: 根據Django URL配置,將請求發送到 適當視圖的機制。
如果你餓了首字母縮寫詞,你可能會說Django是一個「MTV」 框架 - 「查看」,即,「模式」,「模板」,並擊穿 更有道理。
在一天結束時,當然,這歸結於完成任務。 而且,無論事物是如何命名的,Django都以 的方式完成對我們最合乎邏輯的事情。
相關問題
- 1. 爲什麼=而不是:?
- 2. 爲什麼DateTime.Now.Year是int而不是ushort
- 3. 'num_of_cmt'是4而不是2。爲什麼?
- 4. 爲什麼retainCount是0而不是1?
- 5. 爲什麼爲(;;)而不是while(1)?
- 6. 是什麼,而不
- 7. 爲什麼使用classmethod而不是staticmethod?
- 8. 爲什麼使用iconv_strpos而不是strpos?
- 9. 爲什麼使用registerDefaults:而不是setValue:forKey:?
- 10. 爲什麼'Private Sub`而不是`Public Sub`
- 11. 爲什麼合併而不是快進?
- 12. 爲什麼Builder builder而不是alertdialoge.Builder?
- 13. 爲什麼myInstance = nil而不是self.myInstance = nil?
- 14. 爲什麼調度Event.OPEN而不是IOErrorEvent.IO_ERROR?
- 15. 爲什麼使用TagBuilder而不是StringBuilder?
- 16. 爲什麼Java有NullPointerException而不是NullReferenceException?
- 17. 爲什麼,而不是使用回調
- 18. 爲什麼NSAssert1,而不是NSAssert?
- 19. 爲什麼使用結構,而不是
- 20. 爲什麼null == myVar而不是myVar == null?
- 21. 爲什麼使用StringWriter而不是StringBuffer?
- 22. 爲什麼hashtable count = 1而不是= 5?
- 23. 爲什麼不調用UIPinchGestureRecognizer,而scrollViewDidEndZooming是?
- 24. 爲什麼客觀化而不是JDO?
- 25. 爲什麼使用s:Line而不是mx:HRule?
- 26. 爲什麼使用ImageIcon而不是Image?
- 27. 爲什麼使用SQLiteOpenHelper而不是SQLiteDatabase?
- 28. 爲什麼返回-1而不是0?
- 29. 爲什麼mutable.Set.empty ++ = treeSet而不是++?
- 30. 爲什麼String.Format(「%1s」,「」)不返回「」而是「」?
ahhh yes FAQ ...謝謝! – Parris