首页 > 解决方案 > 避免每次都重复大量查询

问题描述

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

这是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

如您所知,每次我访问该页面时,都会重复相同的查询..

任何提示都会有所帮助,在此先感谢您!

标签: djangoperformancedjango-viewsdjango-queryset

解决方案


您可以将缓存层添加到您的应用程序。可以与 Django 一起使用的技术之一是Memcached

这是 Django 文档中有关使用 Memcached 设置缓存的信息:https ://docs.djangoproject.com/en/2.0/topics/cache/#memcached

同样的页面也有关于在 Django 中使用缓存的信息,包括按视图缓存


推荐阅读