Python 如何在django视图中禁用缓存?

Python 如何在django视图中禁用缓存?,python,django,caching,Python,Django,Caching,每当我修改django视图或静态文件时,当我重新加载页面时,它可能仍然不会更新 比如说, def index(request): print 'first' return httpResponse('ok') from django.views.decorators.cache import never_cache @never_cache def index(request): print 'second' return httpResponse('ok')

每当我修改django视图或静态文件时,当我重新加载页面时,它可能仍然不会更新

比如说,

def index(request):
    print 'first'
    return httpResponse('ok')
from django.views.decorators.cache import never_cache

@never_cache
def index(request):
    print 'second'
    return httpResponse('ok')
django服务器日志返回“first”

但经过修改后

def index(request):
    print 'second'
    return httpResponse('ok')
django仍然可以返回“first”,而不是“second”

我找到了禁用缓存的方法

比如说,

def index(request):
    print 'first'
    return httpResponse('ok')
from django.views.decorators.cache import never_cache

@never_cache
def index(request):
    print 'second'
    return httpResponse('ok')
但这是行不通的

在开发模式下如何避免此问题


谢谢大家!

这与缓存无关。由于某种原因,您的devserver没有检测到更改,因此没有重新启动;只需按ctrl-c键并手动重新运行即可。

在Chrome中,转到浏览器设置,即可禁用缓存。这是设置>常规

Hm下的第一个选项,Django dev server在启动时检测加载的.py文件中的更改。你能试着补充一下吗

from your_app import index
例如,在您的url.py中,只是为了确保模块已加载

然后修改索引代码

您的devserver应该重新启动


如果重新启动,您的修改将被考虑在内,您的打印应该正常

您如何在开发模式下运行您的站点?您可能只需要重新启动服务器即可使更改生效。Django不会缓存任何东西,除非您明确告诉它。通过开发模式,您的意思是使用:python manage.py runserver吗?如果是,则不应缓存任何内容。愚蠢的问题:你保存你的修改吗?开发服务器必须在每次启动后自动重新启动modifications@knbk,我通过python manage.py runserver运行我的开发服务器,并设置DEBUG=true。每当我进行更改时,是否需要使用这样的命令来重新启动dev服务器?这太可怕了@拉斐尔布拉德,是的!我使用python manage.py runserver启动开发服务器。我确信我已经保存了修改。但是,dev服务器似乎没有自动重启才能生效。但它总是返回304页,而不是200页。这不是浏览器缓存的问题,只要devserver没有重启,修改不会被考虑在内:有没有办法知道开发服务器已经检测到了更改?我已经从url.py的app_name导入视图中添加了。但它仍然不起作用。