Django 避免每次重复大量查询

Django 避免每次重复大量查询,django,performance,django-views,django-queryset,Django,Performance,Django Views,Django Queryset,我已经建立了一个网站,有很多视图,其中包含很多查询 我的问题是如何避免重复用户多次访问的视图中的某些查询? 下面是views.py的一个示例 @access_to(['is_admin','is_job_seeker']) def negotiationView(request,slug,id,code): obj = get_object_or_404(Group,slug=slug) nego = get_object_or_404(Negotiation,id=id,co

我已经建立了一个网站,有很多视图,其中包含很多查询 我的问题是如何避免重复用户多次访问的视图中的某些查询?

下面是views.py的一个示例

@access_to(['is_admin','is_job_seeker'])
def negotiationView(request,slug,id,code):
    obj = get_object_or_404(Group,slug=slug) 
    nego = get_object_or_404(Negotiation,id=id,code=code)

    related_negos = Negotiation.objects.filter(tag=nego.tag)
    # New tag can be created every 2 months or more
    all_jobs = obj.job_offers.filter(published=True) # new job can be added every week
如您所能,每次我访问该页面时,都会重复相同的查询


任何提示都会有帮助,提前谢谢

您可以向应用程序添加缓存层。Django可以使用的技术之一是

以下是Django文档中有关使用Memcached设置缓存的信息:


同样,同一页面也有关于在Django中使用缓存的一般信息,包括通常不能使用的

,因为Web服务器通常被认为是无状态的(数据库除外)。例如,您可以使用进行一些缓存。感谢@WillemVanOnsem的快速回复,使用
Django cachalot
有没有办法告诉它在多少天或几个月后重新加载真实内容而不是缓存。django不是提供了一个,而不是任何第三方软件包吗?谢谢你的回答,你能用一个如何在视图中使用它的例子来编辑你的答案吗?太棒了。在文档中找到它。与此同时,等待其他可能更好的答案。非常感谢我发布的第二个链接,
每视图缓存
指定了一个装饰器,如果您使用基于类的视图,可以添加到视图或urlconf中。