我剛剛開始玩Django/Python,並試圖轉入Django要求的編程的MTV模式(堅持)。迄今爲止,決定哪些功能應該是模型的方法而不是簡單地作爲視圖中的功能。有沒有人知道一本書,網站,博客,幻燈片,無論是以更一般的抽象術語討論Web框架編程?我想像一本關於面向對象編程的書會做到這一點,但我覺得這樣做會過度 - 我正在尋找一些特定於Web框架的東西。Web框架編程心態
回答
如果你沒有絕對設置在深入Django和不介意嘗試別的東西作爲開始,你可能想給WSGI一個鏡頭,它允許您模板應用程序使用third party engine自己的路,而不必完全遵循Django的規則。這也讓你可以在更低級別的處理請求中查看,這樣你可以更好地理解Django在底層做什麼。
以下是一些可能對您有幫助的鏈接。根據我自己的經驗,當我第一次開始使用基於MVC的web框架時,我遇到的最大問題是模型。從我的手指中舀出SQL並使我使用對象感覺很奇怪。一旦我開始將我的數據看作Object而不是SELECT語句,它就變得更容易了。
我的Django的基本規則是:如果你可以想見,需要從比視圖本身之外的其他地方的功能,它不屬於在查看功能。
我還建議下載一些Django Pluggables上的應用程序,看看他們是如何做到的。
查看功能應該只包含顯示助手或顯示邏輯。視圖函數不應該訪問模型本身,而應該使用模型數據的參數。從模型中分離模型非常重要。所以如果函數處理訪問數據庫或數據庫對象,它就屬於模型。如果該函數處理格式顯示,則它屬於視圖。
一旦你做找到一些很好的指導,這裏有一些事情要記住:Django是有點特殊的術語。它在模型,模板和視圖中使用「MTV」(並且可以在此處提及URL Dispatcher),而模型,視圖和控制器的更多標準術語是「MVC」。
模型在兩種意義上都是相同的 - 一個數據實體的模型,如果框架實現了對象/關係映射(這是Django所做的),通常鏈接到數據庫表。
但剩下的兩個詞可能會讓人困惑; Django在談論Views,「世界其他地方」關於Controllers的談話。基本思想是這是表示邏輯完成的地方。計算計算,數組排序,數據檢索等。我會說,Django的URL調度器也是傳統控制器概念的一部分。
Django的模板與其他地方的視圖相媲美 - 在這裏你有你的演示文稿,沒有別的。在Django迫使你使用一小部分邏輯命令的情況下,其他框架通常只是建議你不要做任何事情,除了現在的HTML,還有一些演示邏輯元素(比如循環,分支等),但不要阻止你做其他的事情東東。
因此,回顧一下:
- 型號:數據對象
- 控制器(Django的視圖):數據處理
- 視圖(模板在Django):介紹
哦,btw:對於一個Django特定的指南,考慮readin摹The Django Book
我沒有真正使用Django的憤怒之前,但在Rails和CakePHP的(通過擴展,任何MVC的Web框架)的Fat Model, Skinny Controller方法來組織你的方法一直是大開眼界我。
- 1. 用於Perl Web編程的MVC框架?
- 2. Web框架的狀態機?
- 3. 精心設計的Web App GUI框架?
- 4. 動態Web編程
- 5. Web應用程序框架?
- 6. Web應用程序框架
- 7. 捕捉web框架和動態重新編譯
- 8. 動態實體框架的Web API
- 9. 實體框架核心以編程方式應用遷移
- 10. Java心跳框架
- 11. 編寫PHP Web服務的框架
- 12. IronPython Web框架
- 13. Python Web框架
- 14. Web框架
- 15. Java Web框架
- 16. 實體框架核心,存儲過程
- 17. 框架像線程編組
- 18. 在沒有框架的python中編寫web應用程序?
- 19. 不同的web編程框架之間的區別?
- 20. Web編程框架生成「//」的相關鏈接
- 21. Web應用程序編碼的最佳JavaEE框架是什麼?
- 22. Web應用程序框架和Web UI框架的獨特屬性?
- 23. HTTP框架和web框架的區別?
- 24. 構建Web框架
- 25. web服務框架
- 26. 100%Javascript Web框架
- 27. Scala web微框架
- 28. 語義Web框架
- 29. Scala中基於角色的編程框架/面向組合的編程框架
- 30. JRuby on rails框架Web應用程序