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__unicode__(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: Statistics.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'))) todayObj.pv += 1 todayObj.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'] = count ret['phycount'] = phycount return render_to_response('index.html', ret)
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__unicode__(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: Statistics.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'))) todayObj.pv += 1 todayObj.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'] = count ret['phycount'] = phycount return render_to_response('index.html', ret)