博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
django-装饰器实现PV统计
阅读量:7059 次
发布时间:2019-06-28

本文共 1406 字,大约阅读时间需要 4 分钟。

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

#!/usr/bin/env python# -*- coding=utf-8 -*-##################################from models import Statisticsimport timedef 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=0,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@pvCountdef index(request):    count = models.NewMachine.objects.all().count()    phycount = models.PhysicalHost.objects.all().count()    ret = dict()    ret['count'] = count    ret['phycount'] = phycount    # return HttpResponse('123456')    #logger.error("level info test")    return render_to_response('app/pages/index.html', ret)

转载于:https://www.cnblogs.com/PythonOrg/p/6553427.html

你可能感兴趣的文章
samba文件共享
查看>>
MySQL专题7之MySQL连接、 MySQL MULL值得处理以及MySQL 正则表达式的使用
查看>>
第二次作业
查看>>
web报表轻松实现数据异常预警功能
查看>>
ASP.NET Core之跨平台的实时性能监控
查看>>
tomcat日志切割
查看>>
WannaCry勒索软件还在继续传播和感染中
查看>>
TarsGo新版本发布,支持protobuf,zipkin和自定义插件
查看>>
Snap up RS3gold 3500M 60% off rs3 for sale &learn
查看>>
oracle函数
查看>>
json与String的转化
查看>>
linux上解压版安装jdk,tomcat
查看>>
科略教育—企业为什么始终处于竞争状态?
查看>>
iphone开发
查看>>
解决:在微信中访问app下载链接提示“已停止访问该网页”
查看>>
使用阿里云ECS自建RDS MySQL从库
查看>>
Linux下sed命令
查看>>
胃病犯了怎么办
查看>>
三星2610打印机故障INTERNAL ERROR - Incomplete Session by time out
查看>>
马哥2016全新Linux+Python高端运维班第五周作业
查看>>