2008-08-22 49 views
2

我剛剛開始玩Django/Python,並試圖轉入Django要求的編程的MTV模式(堅持)。迄今爲止,決定哪些功能應該是模型的方法而不是簡單地作爲視圖中的功能。有沒有人知道一本書,網站,博客,幻燈片,無論是以更一般的抽象術語討論Web框架編程?我想像一本關於面向對象編程的書會做到這一點,但我覺得這樣做會過度 - 我正在尋找一些特定於Web框架的東西。Web框架編程心態

回答

0

如果你沒有絕對設置在深入Django和不介意嘗試別的東西作爲開始,你可能想給WSGI一個鏡頭,它允許您模板應用程序使用third party engine自己的路,而不必完全遵循Django的規則。這也讓你可以在更低級別的處理請求中查看,這樣你可以更好地理解Django在底層做什麼。

1

我的Django的基本規則是:如果你可以想見,需要從比視圖本身之外的其他地方的功能,它不屬於在查看功能。

我還建議下載一些Django Pluggables上的應用程序,看看他們是如何做到的。

0

查看功能應該只包含顯示助手或顯示邏輯。視圖函數不應該訪問模型本身,而應該使用模型數據的參數。從模型中分離模型非常重要。所以如果函數處理訪問數據庫或數據庫對象,它就屬於模型。如果該函數處理格式顯示,則它屬於視圖。

1

一旦你找到一些很好的指導,這裏有一些事情要記住:Django是有點特殊的術語。它在模型,模板和視圖中使用「MTV」(並且可以在此處提及URL Dispatcher),而模型,視圖和控制器的更多標準術語是「MVC」。

模型在兩種意義上都是相同的 - 一個數據實體的模型,如果框架實現了對象/關係映射(這是Django所做的),通常鏈接到數據庫表。

但剩下的兩個詞可能會讓人困惑; Django在談論Views,「世界其他地方」關於Controllers的談話。基本思想是這是表示邏輯完成的地方。計算計算,數組排序,數據檢索等。我會說,Django的URL調度器也是傳統控制器概念的一部分。

Django的模板與其他地方的視圖相媲美 - 在這裏你有你的演示文稿,沒有別的。在Django迫使你使用一小部分邏輯命令的情況下,其他框架通常只是建議你不要做任何事情,除了現在的HTML,還有一些演示邏輯元素(比如循環,分支等),但不要阻止你做其他的事情東東。

因此,回顧一下:

  • 型號:數據對象
  • 控制器(Django的視圖):數據處理
  • 視圖(模板在Django):介紹

哦,btw:對於一個Django特定的指南,考慮readin摹The Django Book

1

我沒有真正使用Django的憤怒之前,但在Rails和CakePHP的(通過擴展,任何MVC的Web框架)的Fat Model, Skinny Controller方法來組織你的方法一直是大開眼界我。