(二十四) Django - 網站的參訪次數

這部分會使用到session,Django已經自動幫我們安裝session的app,分別是INSTALLED_APPS的’django.contrib.sessions’以及MIDDLEWARE的 ‘django.contrib.sessions.middleware.SessionMiddleware’。

第一步:models.py

新增Visit資料工作表,用於儲存網站瀏覽次數。

1
2
class Visit(models.Model):
times = models.IntegerField()

第二步:views.py

以字典的方式設定session,比如’request.session[“名稱”]=值’。

1
2
3
4
5
6
7
8
9
10
11
12
def visitor_count(request):
if "quiz" not in request.session: #如果session沒有紀錄
request.session["quiz"]=True #session儲存name:quiz value:True
visit_model = Visit.objects.get(pk=1) #拜訪人數
visit_model.times += 1 #拜訪人數加一
visit_model.save()
else:
visit_model = Visit.objects.get(pk=1)
visit_model.times += 0
visit_model.save()
context = {'visit_template': visit_model.times}
return render(request, 'visitor_count.html', context)

第三步:urls.py

最後記得加上urlpattern:

1
2
3
4
urlpatterns = [
...
path('visitorcount', views.visitor_count),
]