【发布时间】:2019-03-15 14:40:23
【问题描述】:
[附加信息]
我要求一种方法来禁用站点范围内的缓存。 这可能有点矫枉过正,因为我所需要的只是一种能够查看页面的最新版本的方法,而数据库或生成它的程序有已修改。
普遍认为在运行时修改设置是一个非常糟糕的主意。
所以,一些想法:清除缓存可能会起作用,就像发送标志以指定我不想看到缓存的版本,或指定来自我的 IP 地址的请求不应看到缓存页面。
[原问题]
我有一个基于 Django 的网站 ozake.com,我经常重写部分程序或更改页面内容。
每次我处理它时,我都会修改 settings.py 以禁用缓存,以便我可以实时查看我的修改。
完成后,我会重新启用缓存。
我正在使用基于文件的缓存。这是settings.py的相关部分:
CACHES = {
'default': {'BACKEND':
#'BACKEND': 'django.core.cache.backends.dummy.DummyCache',
'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache',
'LOCATION': '/var/www/mysite.com/cache',
当我在网站上工作时,我注释掉最后两行并取消注释虚拟缓存行。
这意味着 SSH 进入站点,修改 settings.py,在站点上工作,然后重新修改它。
有什么办法可以用 admin.py 将它变成 /admin 中某处的复选框?
【问题讨论】:
-
我开始认为我需要维护一个单独的站点进行开发。
-
也许在您的站点部署的机器上放置一个脚本(shell),在某个动作上执行该脚本并修改设置文件?
-
也许使用 django-constance 从管理员那里设置一个动态布尔标志,然后根据标志值创建一个行为类似于 DummyCache 或 FileBasedCache 的自定义缓存后端?
-
远射,但github.com/jazzband/django-configurations 让您有机会在 django 设置中使用环境变量作为值。您可以在管理员中创建一个按钮来更改环境变量并重新启动服务器。
-
“我开始认为我需要维护一个单独的站点来进行开发。”——你真的,真的应该。或者,实际上,您需要maintain a separate site for production, since your current "production" site is really a development site。
标签: python django caching django-admin