首页 > 编程知识 正文

javaweb统计网站访问人数,python网站开发实例

时间:2023-05-06 03:08:43 阅读:139906 作者:2449

项目总结:“全栈Django3.x个人主页网站全记录”项目简介

文章目录简介演示文稿APP创建配置APP应用程序models.py管理adminx.py视图Views.py

内容介绍

开发和配置统计数据后台功能。

在此,不说明项目的数据转移部分,而执行CMD命令。

python manage.py makemigrations #迁移到我们的数据库python manage.py migrate #,并与数据库的内容显示同步

APP应用程序创建配置1.创建应用

进入文档根目录,执行CMD命令创建新闻信息APP,然后将创建的APP广告文件夹移动到目录的apps下即可。

cdmyhomepythonmanage.pystartappstatisticaldata只需将创建的APP应用文件夹移动到目录的apps下即可

2.配置应用模块

在settings.py文件中进行更改

INSTALLED_APPS=[.#文章添加APP应用程序' apps.StatisticalData ',3.不需要修改该的文件

3358www.Sina.com/因为使用xadmin代替此admin,所以此文件不需要修改此http://www.Sina.com/APP应用程序的配置文件,而是3358 www.Sina.com models.py # coding : utf-8 from django.dbimportmodelsfromdjango.utilsimporttimezone # 网站总访问模式classvisittotalnumber (3360 total _ count=models.integer field (default=0,verbose_name='网站总访问权限help_text='统计站点被访问的总次数' (class Meta: verbose_name='站点被访问的总次数' verbose _ name _ plural=verbose ' elf.total_count )每日访问次数模型classvisiteverydaynumber ) models.models=models.date field ) dels.model verboser help_text='后台自动计算的每日聚合访问次数' ) visit _ count=models.integer field (default=0, Verbose_name help_text='当天网站的总访问量' (classmeta : verbose _ name='网站每日访问量统计' verbose _ name _ class classvisitippart(models.model ) : visit _ IP=models.char field (max _ length=30, 访问verbose_name='IP地址help _ text='访问网站的IP地址信息记录' ) visit _ part=models.char field (max _ lent ) help _ text='用于访问网站的具体内容模块' ) visit _ time=models.datetime field (default=time zone.now,verbose help_text='默认创建时系统时间' ) class Meta: verbose_name='IP访问详细信息' verbose _ name _ plural=verbose _ name def _ str _ name访问IP的总数模型classvisision

erField( default=0, verbose_name='IP访问次数', help_text='通过后台自动计算的IP聚合访问次数' ) class Meta: verbose_name = 'IP访问汇总' verbose_name_plural = verbose_name def __str__(self): return self.visit_ip 管理 adminx.py import xadminfrom .models import *# 网站总访问管理class VisitTotalNumberAdmin(object): list_display = ['total_count'] show_bookmarks = False list_per_page = 30 readonly_fields = ['total_count']# 每日访问次数管理class VisitEveryDayNumberAdmin(object): list_display = ['date', 'visit_count'] show_bookmarks = False list_per_page = 30 readonly_fields = ['date', 'visit_count']# 访问IP和模块管理class VisitIpPartAdmin(object): list_display = ['visit_ip', 'visit_part'] show_bookmarks = False list_per_page = 30 readonly_fields = ['visit_ip', 'visit_part']# 访问IP的总数管理class VisitEveryIpCountAdmin(object): list_display = ['visit_ip', 'visit_count'] show_bookmarks = False list_per_page = 30 readonly_fields = ['visit_ip', 'visit_count']xadmin.site.register(VisitTotalNumber, VisitTotalNumberAdmin)xadmin.site.register(VisitEveryDayNumber, VisitEveryDayNumberAdmin)xadmin.site.register(VisitIpPart, VisitIpPartAdmin)xadmin.site.register(VisitEveryIpCount, VisitEveryIpCountAdmin) 视图 Views.py # coding:utf-8from .models import *from django.utils import timezone# 修改网站访问量和访问ip等信息def visit_info(request, part): # 统计总访问次数,访问一次自动+1 visit_total_number = VisitTotalNumber.objects.filter(id=1) if visit_total_number: visit_total_number = visit_total_number[0] visit_total_number.total_count += 1 else: visit_total_number = VisitTotalNumber() visit_total_number.total_count = 1000 # 初始化访问次数 visit_total_number.save() # 统计每日访问次数进行累计求和 date = timezone.now().date() visit_everyday_number = VisitEveryDayNumber.objects.filter(date=date) if visit_everyday_number: visit_everyday_number = visit_everyday_number[0] visit_everyday_number.visit_count += 1 else: visit_everyday_number = VisitEveryDayNumber() visit_everyday_number.date = date visit_everyday_number.visit_count = 1000 # 初始化访问次数 visit_everyday_number.save() # 记录访问ip和每个ip的次数 if 'HTTP_X_FORWARDED_FOR' in request.META: # 获取ip visit_ip = request.META['HTTP_X_FORWARDED_FOR'] visit_ip = visit_ip.split(",")[0] # 所以这里是真实的ip else: visit_ip = request.META['REMOTE_ADDR'] # 这里获得代理ip # 访问IP和访问模块信息记录 visit_ip_part = VisitIpPart() visit_ip_part.visit_ip = visit_ip visit_ip_part.visit_part = part visit_ip_part.save() # 访问IP总数统计信息 visit_every_ip_count = VisitEveryIpCount.objects.filter(visit_ip=str(visit_ip)) if visit_every_ip_count: visit_every_ip_count = visit_every_ip_count[0] visit_every_ip_count.visit_count += 1 else: visit_every_ip_count = VisitEveryIpCount() visit_every_ip_count.visit_ip = visit_ip visit_every_ip_count.visit_count = 1 visit_every_ip_count.save()

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。