5 分钟快速上手 django-request:Django 流量统计模块安装配置教程

5 分钟快速上手 django-request:Django 流量统计模块安装配置教程

【免费下载链接】django-request django-request is a statistics module for django. It stores requests in a database for admins to see, it can also be used to get statistics on who is online etc. 【免费下载链接】django-request 项目地址: https://gitcode.com/gh_mirrors/dj/django-request

想给自己的 Django 网站加上完整的访问统计,却又不想接入第三方统计服务?django-request 就是为此而生的开源 Django 流量统计模块。它能把每一次 HTTP 请求自动写入数据库,在 Django 后台提供流量趋势图、热门路径、来源网站、搜索关键词、在线用户等丰富报表。本教程将带你 5 分钟完成 django-request 安装配置,快速上手这一实用的流量统计工具。

django-request 是什么?核心功能一览

django-request 是一个轻量级、开箱即用的统计模块。它通过中间件自动记录请求信息,无需改动你的业务视图代码,即可获得以下能力:

  • 📊 流量趋势图:按天展示 Hits(总请求数)、Unique Visits(独立访问数)、Unique Visitors(独立访客数)
  • 📍 访问明细:记录每个请求的路径、方法、状态码、IP、来源(Referer)、浏览器与语言
  • 🔍 SEO 洞察:统计访问来源网站(Top Referrers)和搜索关键词(Top Search Phrases)
  • 🧑‍🤝‍🧑 在线用户统计:通过 active_users 方法或模板标签,实时查看一段时间内的活跃用户
  • 🧹 数据清理:内置 purgerequests 命令,可定期清理过期记录

所有数据都保存在项目自身的数据库中,隐私可控、无需外部依赖,很适合中小型站点和自建分析场景。

安装前准备:环境要求与安装方式

django-request 对运行环境的要求非常简单:

  • Python:3.8 及以上版本
  • Django:4.2、5.0、5.1
  • 依赖库python-dateutil

安装方式推荐使用 pip 一行搞定:

pip install django-request

如果你想体验最新开发版,也可以通过 git clone 获取源码后安装:

git clone https://gitcode.com/gh_mirrors/dj/django-request
pip install django-request/

更详细的安装说明可以参阅项目文档 docs/install.txt

最快配置方法:django-request 安装配置三步走

完成安装后,只需三步即可让流量统计开始工作。

第一步:注册应用并执行数据库迁移

打开项目的 settings.py,在 INSTALLED_APPS 中加入 'request'

INSTALLED_APPS = [
    # ... 其他应用
    'request',
]

然后执行迁移命令,创建数据表:

python manage.py migrate

迁移文件位于 request/migrations/,模块初始化与数据模型分别定义在 request/apps.pyrequest/models.py 中。

第二步:添加请求记录中间件

MIDDLEWARE 中追加 request.middleware.RequestMiddleware

MIDDLEWARE = [
    # ...
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    # 建议放在 AuthenticationMiddleware 之后
    'request.middleware.RequestMiddleware',
]

中间件源码见 request/middleware.py。它会在每个响应返回时记录请求;如果你使用了 Flatpages,请把它放在 FlatpageFallbackMiddleware 之前,避免静态页被误记为错误页面。

第三步:配置站点基础地址

为了正确计算独立访客与站内来源,建议在 settings.py 中显式设置 REQUEST_BASE_URL

REQUEST_BASE_URL = 'https://www.yoursite.com/'

如果不设置,默认会使用 django.contrib.sites 的当前站点域名。完成这三步后重启开发服务器,访问任意页面,数据就会开始累积。

查看统计报表:Django 后台的 Overview 概览页

登录 Django 管理后台,点击左侧的 Requests 进入请求列表,再点击右上角 Overview 按钮,即可打开流量概览页。这里集中展示了流量模块表格、最新请求、热门路径、错误路径、来源网站、搜索关键词和浏览器分布等插件面板,全部来自 request/plugins.py 中定义的插件体系。

概览页下方的流量趋势图(由 request/traffic.py 生成)直观呈现每日的请求量、独立访问数与独立访客数变化:

django-request 流量统计模块的流量趋势图

图中黄色曲线代表独立访客,浅蓝色代表独立访问,红色代表总请求量。波动趋势一目了然,方便你快速判断流量涨跌。

常用配置项:让流量统计更精准

django-request 提供了丰富的开关,全部以 REQUEST_ 开头,配置项列表见 request/settings.pydocs/settings.txt。这里推荐几个高频配置:

配置项默认值作用
REQUEST_IGNORE_AJAXFalse设为 True 时忽略 AJAX 请求,得到更纯粹的页面访问数据
REQUEST_IGNORE_IP空元组忽略指定 IP 的访问(如内部测试 IP)
REQUEST_IGNORE_PATHS空元组用正则忽略指定路径,例如 r'^admin/' 忽略后台自身流量
REQUEST_LOG_IPTrue设为 False 时不记录真实 IP,保护访客隐私
REQUEST_ONLY_ERRORSFalse只记录错误响应,把模块当成错误监控系统使用
REQUEST_PLUGINS7 个默认插件自定义 Overview 页展示哪些面板
REQUEST_TRAFFIC_MODULES3 个指标增删流量图与表格中的统计指标

例如,忽略搜索引擎爬虫与空 UA 的访问,可以这样写:

REQUEST_IGNORE_USER_AGENTS = (
    r'^$',
    r'Googlebot',
    r'Baiduspider',
)

进阶功能:在线用户统计与数据清理

查看当前在线用户

django-request 不仅能统计流量,还能告诉你谁在线。在代码中调用:

from request.models import Request
Request.objects.active_users(minutes=15)

即可获得最近 15 分钟内有活动的用户集合,实现逻辑见 request/managers.py。在模板中,可以使用模板标签直接展示:

{% load request_tag %}
{% active_users in 10 minutes as user_list %}
{% for user in user_list %}
    {{ user.username }}
{% endfor %}

模板标签定义在 request/templatetags/request_tag.py,用法示例可参考 docs/templatetags.txt

定期清理历史数据

流量数据会持续增长,建议用管理命令定期清理。比如删除 1 个月前的记录:

python manage.py purgerequests 1 month --noinput

命令源码见 request/management/commands/purgerequests.py--noinput 参数可跳过确认,方便配合 cron 定时任务自动执行。

常见问题排查

  • 后台没有数据? 检查中间件是否已正确加入 MIDDLEWARE,并确认访问页面时没有 404 或 500。
  • 希望不记录后台自身流量? 设置 REQUEST_IGNORE_PATHS = (r'^admin/',) 即可。
  • 需要更精细的指标?REQUEST_TRAFFIC_MODULES 中可加入 AjaxErrorSearchSecureUser 等更多模块,例如 'request.traffic.Error' 可统计错误数。

结语

从安装到查看报表,django-request 的整个流程轻量且无侵入,只需配置一次中间件,即可长期稳定地收集流量数据。无论是做运营分析、SEO 关键词追踪,还是简单的在线用户展示,它都能在几分钟内帮你搞定。现在就按本教程的 django-request 安装配置步骤动手试试吧!

【免费下载链接】django-request django-request is a statistics module for django. It stores requests in a database for admins to see, it can also be used to get statistics on who is online etc. 【免费下载链接】django-request 项目地址: https://gitcode.com/gh_mirrors/dj/django-request

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值