django应用程序,它首先在redis中保留内容访问计数,然后通过额外的作业转储到数据库。
django-redis-counter的Python项目详细描述
django应用程序,它首先在redis中保留内容访问计数,然后通过额外的作业转储到数据库。
安装
pip install django-redis-counter
依赖关系
- Django
- redis
用法
- 在django settings.py中的已安装应用程序中添加DRC。DRC是django redis counter的缩写。
INSTALLED_APPS = [ ... 'drc', ... ]
- 在app的models.py中定义计数器模型。
from drc.models import Counter class Page(models.Model): title = models.CharField(max_length=32) ... class PageCounter(Counter): pass
- 在视图中调用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, })
- 创建一个脚本将缓存数据转储到数据库。将脚本命名为page_counter_dump.sh或任何您喜欢的内容。
#!/bin/bash cd /your/project/path python manage.py drc-dump
- 将转储任务添加为计划作业,例如crontab作业。
* * * * * page_counter_dump.sh # dump the cached data every minutes 1 * * * * page_counter_dump.sh # dump the cached data every hour.