python愈來愈火,不少朋友從事web方向,Django框架是從事最多的框架,今天小猿圈爲你們詳解一下Django瀏覽頁面點擊數,有興趣的朋友能夠學習一下,無論作什麼網站,這個知識點是確定會用到的。html
一般狀況下在Views.py中直接寫一個視圖函數就能夠了,因爲每次點出詳情時都會經視圖函數處理,python
因此能夠在此視圖函數中對瀏覽次數進行「+1」 操做。web
對應的url:url(r'^(?P<pk>[0-9]+)/$', views.get_detail, name='detail'),bash
def get_detail(request, pk=''):框架
# 根據文章的id 對每一次點擊累加
context = Text.objects.get(id=pk)
browses = context.browse
browses += 1
context.browse = browses
context.save()
return render(request, 'news/detail.html',{'context':context})
複製代碼
但此次跟着Django 官方文檔走的,用的:generic.DetailView子類:函數
而後知道它有這些方法:學習
1.dispatch()
2.http_method_not_allowed()
3.get_template_names()
4.get_slug_field()
5.get_queryset()
6.get_object()
7.get_context_object_name()
8.get_context_data()
9.get()
10.render_to_response()
複製代碼
最後試了下get,寫了下面這個:網站
對應的url:url(r'^(?P<pk>[0-9]+)/$', views.DetailView.as_view(), name='detail'),ui
class DetailView(generic.DetailView):
model = Text
template_name = 'news/detail.html'
context_object_name = 'blog'
def get_queryset(self):
return Text.objects.filter(pub_date__lte=timezone.now())
def get(self, request, *args, **kwargs):
# 根據文章的id 對每一次點擊累加
blog = Text.objects.get(id=kwargs['pk'])
browses = blog.browse
browses += 1
blog.browse = browses
blog.save()
return render(request, 'news/detail.html', {'blog': blog})
複製代碼
事實上關鍵就在獲得具體的對象,因此這個地方須要"id",因此須要獲得從url中捕獲的「pk」,url
可是這個值在**kwargs中,能夠經過kwargs['pk']獲得它。
到這裏就結束了,你們學會Django瀏覽頁面的點擊數了嗎?感受有疑問的,多看兩遍,相信你們會掌握的;感興趣的,能夠去小猿圈學習更多東西, 學習在於天天進步一點點。