Django应用程序可有效测量使用情况

django-souvenirs的Python项目详细描述


PyPIBuild StatusCoverage Report

Django网站上的用户有多活跃?当用户 已注册(User.date_joined)并且在他们登录时(User.last_login)。 但是会话是长寿的,所以这并不能真正回答问题。

纪念品是一款django应用程序,用于有效地测量用户随时间变化的活动,以及 通过api提供这些信息。

Souvenirs Album Cover

安装

PyPI获得最新的稳定版本

pip install django-souvenirs

或者来自github的最新提交

pip install -e git+git://github.com/appsembler/django-souvenirs.git#egg=souvenirs

添加到settings.py

INSTALLED_APPS+=['souvenirs',]MIDDLEWARE_CLASSES+=['souvenirs.middleware.SouvenirsMiddleware',]

迁移数据库

./manage.py migrate souvenirs

用法

有两个核心api调用:souvenez(“remember”)和 count_active_users

您可以根据需要为每个用户调用souvenez(user),默认情况下 将数据库条目的速率限制为每小时一次。如果使用提供的中间件, 然后每次请求都会自动调用souvenez

调用count_active_users查找 给定的时间段。例如:

>>> from souvenirs.control import count_active_users
>>> from django.utils import timezone
>>> from datetime import timedelta
>>> now = timezone.now()
>>> count_active_users(start=now - timedelta(days=1), end=now)
42

可以省略startend,这使得查询在 那个方向。上述调用实际上等同于省略end

>>> count_active_users(start=timezone.now() - timedelta(days=1))
42

这计算了所有时间内活动的用户总数,或者至少从 您安装了中间件:

>>> count_active_users()
1012

报告

纪念品为报告注册用户和活动提供了一些功能 在一段时间内。例如,查看2016年每个日历月的活动:

>>> from datetime import datetime
>>> from django.utils import timezone
>>> from souvenirs.reports import calendar_monthly_usage
>>> start = datetime(2016, 1, 1)  # inclusive
>>> end = datetime(2017, 1, 1)    # exclusive
>>> for d in calendar_monthly_usage(start=timezone.make_aware(start),
                                    end=timezone.make_aware(end)):
...   print(d['labels']['calendar_year_month'],
            d['usage']['registered_users'],
            d['usage']['activated_users'],  # User.is_active
            d['usage']['active_users'])
2016-01 12  10  9
2016-02 20  13  11
2016-03 38  16  10
2016-04 38  28  14
2016-05 38  29  20
2016-06 57  46  37
2016-07 62  58  43
2016-08 117 80  49
2016-09 175 300 75
2016-10 280 333 89
2016-11 420 360 99
2016-12 588 540 151

请参阅reports.py以了解其他报告功能,特别是启动时 在任意日期(而不是日历月)订阅。

设置

纪念品使用希望理智的默认设置为所有设置。这是你能做的 如果需要,覆盖:

SOUVENIRS_RATELIMIT_SECONDS:在数据库中记录活动用户的频率, 默认值3600

SOUVENIRS_CACHE_NAME:要用于速率限制的缓存, 默认值'default'

SOUVENIRS_CACHE_PREFIX:如何为速率限制缓存项加前缀, 默认值'souvenirs.'

SOUVENIRS_USAGE_REPORTS_FUNCTION:所有报告函数都调用 低级函数usage_for_periods。这可以被覆盖(可能 包装)如果您想使用纪念品报告功能生成 更丰富的数据,例如每个时间段合并一些其他数据。

贡献

若要参与此项目,请转到您自己的github用户,进行更改 在分支上,运行测试并打开拉取请求。如果你有hubtox 已安装,如下所示:

hub clone appsembler/django-souvenirs
cd django-souvenirs
git checkout -b my-awesome-feature
# hack hack hack!
tox --skip-missing-interpreters
git commit -am "my awesome commit"
hub fork  # for example agriffis/django-souvenirs
git push --set-upstream agriffis  # insert your github user here
hub pull-request

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
用Java学习Eclipse可视化编辑器Swing   eclipse如何找到运行Java程序所需的时间?   JAVA用于在Tomcat 8上运行Jena API的lang.UnsupportedClassVersionError   java在Main中调用字符串方法   javascript“子进程”。exec无法运行Java函数   java如何使用Gmail API获取电子邮件正文内容   java为什么客户端看不到服务器发送的第一条消息?   java无法在安卓 WebView中滚动到顶部   从服务器运行web服务时,java代码中的日期为空   从子任务返回后执行后台任务时发生java错误   java无法一致地处理弹出窗口   java(Android)通过蓝牙向µ控制器发送字节   java无法在emulator中启动AVD?安卓工作室   Android Java应用程序正在冻结,没有返回错误消息   java如何使用TestNg记录测试历史?