我們用Django開(kāi)發(fā),比如做一個(gè)博客,我們需要做一個(gè)博文列表,需要分頁(yè),這樣我們需要計(jì)算出一共有多少篇文章,根據(jù)每頁(yè)顯示的博文數(shù)量,我們從數(shù)據(jù)庫(kù)是顯示出相應(yīng)的頁(yè)對(duì)應(yīng)的文章,這樣使用數(shù)據(jù)庫(kù)的查詢可以實(shí)現(xiàn),但是這種需求是比較普遍的,所以Django中有更簡(jiǎn)單的方法來(lái)實(shí)現(xiàn),最簡(jiǎn)單的方法就是使用 generic 類(lèi)來(lái)做。有時(shí)候我們想將一個(gè)模板直接顯示出來(lái),還不得不寫(xiě)一個(gè)視圖函數(shù),其實(shí)可以用 TemplateView 可以直接寫(xiě)在 urls.py 中,這樣的例子還有很多,下面一一介紹: 在urls.py中使用類(lèi)視圖的時(shí)候都是調(diào)用它的 .as_view() 函數(shù) 一,Base Views1. django.views.generic.base.View 這個(gè)類(lèi)是通用類(lèi)的基類(lèi),其它類(lèi)都是繼承自這個(gè)類(lèi),一般不會(huì)用到這個(gè)類(lèi),個(gè)人感覺(jué)用函數(shù)更簡(jiǎn)單些。
2. django.views.generic.base.TemplateView 在 get_context_data() 函數(shù)中,可以傳一些 額外內(nèi)容 到 模板
3. django.views.generic.base.RedirectView 用來(lái)進(jìn)行跳轉(zhuǎn), 默認(rèn)是永久重定向(301),可以直接在urls.py中使用,非常方便:
其它的使用方式:(new in Django1.6)
二,Generic Display View (通用顯示視圖)1. django.views.generic.detail.DetailView DetailView 有以下方法:
article_detail.html
2. django.views.generic.list.ListView ListView 有以下方法:
article_list.html
未完待續(xù) Class-based views 官方文檔: https://docs./en/dev/ref/class-based-views/#built-in-class-based-views-api |
|