日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python-装饰器实现pv-uv

發布時間:2025/3/21 python 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python-装饰器实现pv-uv 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
網站流量統計可以幫助我們分析網站的訪問和廣告來訪等數據,里面包含很多數據的,比如訪問試用的系統,瀏覽器,ip歸屬地,訪問時間,搜索引擎來源,廣告效果等。原來是一樣的,這次先實現了PV,UV,IP三個重要指標的統計。PV(訪問量):Page View, 即頁面瀏覽量或點擊量,用戶每次刷新即被計算一次。UV(獨立訪客):Unique Visitor,一般使用cookie標記,訪問您網站的一臺電腦客戶端(比如一臺電腦開多個瀏覽器訪問則為多個UV)為一個訪客,00:00-24:00內相同的客戶端只會被計算一次。IP(獨立IP):指獨立IP數。00:00-24:00內相同IP地址之被計算一次(多臺電腦可能共用一個ip)。ip、pv、uv的區別:IP(獨立IP):某IP地址的計算機訪問網站的次數。這種統計方式很容易實現,具有真實性。所以是衡量網站流量的重要指標。PV(訪問量):PV反映的是瀏覽某網站的頁面數,所以每刷新一次也算一次。就是說PV與來訪者的數量成正比,但PV并不是頁面的來訪者數量,而是網站被訪問的頁面數量。UV(獨立訪客):可以理解成訪問某網站的電腦的數量。網站判斷來訪電腦的身份是通過來訪電腦的cookies實現的。如果更換了IP后但不清除cookies,再訪問相同網站,該網站的統計中UV數是不變的。工作流程:S1:編寫監控javascript和提供接口。這個接口返回的是監控網站對應的javascript文件,這個文件可以再客戶端可以標記和采集訪客的信息。S2:網站調用接口。只需將引入javascript到要監控的站點即可,訪客訪問該站點時,javascript文件就會被加載。S3:標記和采集數據。監控js被加載后就會往瀏覽器寫入cookie標記訪客,比如新訪客生產一個新cookie和標記訪問次數,若是老用戶則,讀取 cookie信息,計算訪問次數和最后訪問時間等,這些客戶端的信息處理完后,則向指定的服務器發送數據。S4:最后服務器接收javascript提交過來的數據處理入庫和后續的數據處理了。

?

1.models層建立統計表

# 每日訪問量統計 class Statistics(models.Model):pv = models.IntegerField(default=0)uv = models.IntegerField(default=0)date = models.CharField(max_length=200)class Meta:verbose_name = '網站統計信息'verbose_name_plural = '網站統計信息'def__str__(self):return self.date

2.decorator.py建立裝飾器函數

實現每次調用view試圖函數前數據庫字段先自加1

from models import Statistics import time def pvCount(func):def wrapper(request, *args, **kwargs):dateObj_list = Statistics.objects.filter(date=time.strftime('%Y-%m-%d'))count = dateObj_list.count()if count == 0: # ==0,表示第一次訪問,pv,uv默認都為1Statistics.objects.create(pv=1,uv=1,date=str(time.strftime('%Y-%m-%d')))else:todayObj = Statistics.objects.get(date=str(time.strftime('%Y-%m-%d')))
       # 每訪問一次,pv+=1todayObj.pv
+= 1todayObj.save()return func(request, *args, **kwargs)return wrapper

3.view試圖導入裝飾器函數,并調用

from decorator import pvCount @pvCount def index(request):count = models.NewMachine.objects.all().count()phycount = models.PhysicalHost.objects.all().count()ret = dict()ret['count'] = countret['phycount'] = phycountreturn render_to_response('index.html', ret)

?

?

?

?

轉載于:https://www.cnblogs.com/52-qq/p/8919934.html

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的python-装饰器实现pv-uv的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。