基于類的視圖的API 參考。另請參見基于類的視圖 的簡介。
由基于類的視圖處理的每個請求都具有一個獨立的狀態(tài);所以,在實例中保存狀態(tài)變量是安全的(例如,self.foo = 3
是線程安全的操作)。
基于類的視圖在URL 模式中的部署使用as_view()
類方法:
urlpatterns = [
url(r'^view/$', MyView.as_view(size=42)),
]
視圖參數(shù)的線程安全性
傳遞給視圖的參數(shù)在視圖的每個實例之間共享。這表示不應(yīng)該使用列表、字典或其它可變對象作為視圖的參數(shù)。如果你真這么做而且對共享的對象做過修改,某個用戶的行為可能對后面訪問同一個視圖的用戶產(chǎn)生影響。
傳遞給as_view()
的參數(shù)將賦值給服務(wù)請求的實例。利用前面的例子,這表示對MyView
的每個請求都可以使用 self.size
。參數(shù)必須對應(yīng)于在類中已經(jīng)存在的屬性(hasattr
檢查可以返回True
)。
基于類的基礎(chǔ)視圖可以認(rèn)為是父視圖,它們可以直接使用或者繼承它們。它們不能滿足項目中所有的需求,在這種情況下有Mixin 可以擴展基礎(chǔ)視圖的功能。
Django 的通用視圖建立在基礎(chǔ)視圖之上,用于作為經(jīng)常用到的功能的快捷方式,例如顯示對象的詳細(xì)信息。它們提煉視圖開發(fā)中常見的風(fēng)格和模式并將它們抽象,這樣你可以快速編寫常見的視圖而不用重復(fù)你自己。
大部分通常視圖需要queryset
鍵 ,它是一個查詢集
實例;關(guān)于查詢集
對象的更多信息,請參見執(zhí)行查詢。
譯者:Django 文檔協(xié)作翻譯小組,原文:API reference。
本文以 CC BY-NC-SA 3.0 協(xié)議發(fā)布,轉(zhuǎn)載請保留作者署名和文章出處。
Django 文檔協(xié)作翻譯小組人手緊缺,有興趣的朋友可以加入我們,完全公益性質(zhì)。交流群:467338606。