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