django应用程序,它首先在redis中保留内容访问计数,然后通过额外的作业转储到数据库。

django-redis-counter的Python项目详细描述


django应用程序,它首先在redis中保留内容访问计数,然后通过额外的作业转储到数据库。

安装

pip install django-redis-counter

依赖关系

  • Django
  • redis

用法

  1. 在django settings.py中的已安装应用程序中添加DRC。DRC是django redis counter的缩写。
INSTALLED_APPS = [
    ...
    'drc',
    ...
]
  1. 在app的models.py中定义计数器模型。
from drc.models import Counter

class Page(models.Model):
    title = models.CharField(max_length=32)
    ...

class PageCounter(Counter):
    pass
  1. 在视图中调用incr。
def display_page(request, page_id):
    page = Page.objects.get(pk=page_id)
    page_visit_number = PageCounter.incr(page)
    return render(request, "page.html", {
        "page": page,
        "page_visit_number": page_visit_number,
    })
  1. 创建一个脚本将缓存数据转储到数据库。将脚本命名为page_counter_dump.sh或任何您喜欢的内容。
#!/bin/bash
cd /your/project/path
python manage.py drc-dump
  1. 将转储任务添加为计划作业,例如crontab作业。
* * * * * page_counter_dump.sh # dump the cached data every minutes
1 * * * * page_counter_dump.sh # dump the cached data every hour.

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

推荐PyPI第三方库


热门话题
java搜索大数组中的最小数   java如何将数组变量用于IF语句?   多线程如何在java中使用多核?   java实现中的数据结构单链表,无限打印输出?   java检查命令行参数是否按有效顺序传递   爪哇点火。ignite返回“网格实例未正确启动或已停止”   java如何同时使用toString()或print()等显示两个输出?   在Java中使用LinkedList列出两个多项式的加法   Java中并行流的正确使用   mac上的java Eclipse:单击Eclipse图标后崩溃,重新安装,但无法为pyDev创建视图   java如何在sqlite4java中禁用自动提交?   java这样行吗?Synchronized(线程),然后synch块中的thread=null   java方法。调用它可以接受的参数?