缓存用户所在的组,以便请求不必调用数据库来检查组状态。
django-groups-cache的Python项目详细描述
缓存用户所在的组,以便请求不必调用数据库来检查组状态。
支架
当前支持Django1.8、1.11和2.0与Python2.7/Python3,其中对版本的支持与 詹戈的支持。有关特定的python和django版本对,请参见tox.ini文件。
快速启动
安装django组缓存:
pip install django-groups-cache
将其添加到已安装的应用程序中
INSTALLED_APPS=(...'groups_cache.apps.GroupsCacheConfig',...)
将中间件添加到中间件类中
MIDDLEWARE_CLASSES=('django.contrib.sessions.middleware.SessionMiddleware','django.contrib.auth.middleware.AuthenticationMiddleware',...'groups_cache.middleware.GroupsCacheMiddleware',)
如果用户在组名中,则签入django模板:
{%if"admins"inrequest.groups_cache%}<ahref="/admin">AdminPanel</a>{%endif%}# or use templatetag, note that templatetag is slower{%loadhas_group%}{%ifrequest.user|has_group:"admins"%}<ahref="/admin">AdminPanel</a>{%endif%}
打开缓存:
CACHES={'default':{'BACKEND':'django.core.cache.backends.memcached.MemcachedCache','LOCATION':'127.0.0.1:11211',}}
有关设置的详细信息,请参见https://docs.djangoproject.com/en/1.10/topics/cache/#memcached 上memcached。
注**
使用django.core.cache.backends.locmem.locmemcache不安全,除非您 只运行一个进程(很可能你没有)。
有关详细信息,请参见https://docs.djangoproject.com/en/1.10/topics/cache/#local-memory-caching。
功能
- 将组缓存属性添加到请求对象
- 提供模板taghas_group
- 在用户或组模型更改和m2m组多个字段更改时使缓存失效
- 全面测试,覆盖率高
运行测试
source <YOURVIRTUALENV>/bin/activate (myenv) $ pip install tox (myenv) $ tox
历史记录
0.5.5(2017-01-13)
- 模板的错误修复taghas_group
- 添加了测试以100%覆盖TemplateTag文件夹
0.5.5(2017-01-12)
- 从coverage report中省略url.py(不用于django包,但需要它)
- 从覆盖率报告中省略apps.py(默认应用程序文件)
0.5.4(2017-01-12)
- 从Travis CI构建中删除PY32/Django1.8支持
0.5.3(2017-01-12)
- TravIS.YML文件和CI构建
0.5.2(2017-01-12)
- 在readme.rst中键入
0.5.1(2017-01-12)
- 添加codecov.io支持
- 文档更新
0.5.0(2017-01-12)
- 将requirements.txt添加到tox.ini中,以便测试可以运行
- 修复由于1.9/1.10代码中的向后不兼容更改而导致与django 1.8/1.9的兼容性中断的问题
0.4.0(2017-01-12)
- 添加生成100%覆盖率的测试套件
- 修复了测试套件在组上发现的缓存未失效的错误manytomanyfield changing
0.3.1(2017-01-11)
- 文档更新
0.3.0(2017-01-11)
- pypi的第一个稳定的工作版本。
0.1.0(2017-01-11)
- pypi上的第一个版本。