[附加信息]
我要求一种禁用整个站点缓存的方法。这可能是多余的,因为当数据库或生成页面的程序已被修改时,我所需要的只是一种能够查看页面的最新版本的方法。
有一个强烈的共识,那就是在运行时修改设置是一个非常糟糕的主意。
因此,有一些想法:清除缓存可能会起作用,发送标志以指定我不想看到缓存的版本,或者指定来自我的IP地址的请求不应看到缓存的页面,这将是可行的。
[原始问题]
我在ozake.com上有一个基于Django的网站,并且经常重写部分编程内容或更改页面内容。
每次我处理它时,我都会修改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中某个复选框的位置?
如果您只是想使整个缓存无效,则可以创建一个简单的视图来执行此操作:
文件views.py
:
from django.core.cache import cache
from django.core.exceptions import PermissionDenied
from django.http import HttpResponse
from django.views.decorators.cache import never_cache
@never_cache
def clear_cache(request):
if not request.user.is_superuser:
raise PermissionDenied
cache.clear()
return HttpResponse('Cache has been cleared')
文件urls.py
:
from django.urls import path
from . import views
urlpatterns = [
...
path('clear_cache/', views.clear_cache),
]
然后使用浏览器调用它:
http://HOST/clear_cache
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句