Django-如何缓存所有url前缀的模板



我有一个Django应用程序,它可以渲染html模板,并通过ajax从前端将数据加载到html中(基于url的动态id(。例如,这是我的网站的动态url模式;www.mysite.com/order/<一些动态id>";,我想让django缓存&将所有请求返回到该url前缀r〃^**www.mysite.com/order/**";在不影响我的视图功能的情况下渲染html。

目前,url模式中的每个动态id("/order/100"、"/orders/101"、"/dorders/102.etc"(都出现在我的视图中,并为每个动态id呈现相同的模板。

我期待着,任何带有前缀"/订单/";html模板需要在不影响我的视图的情况下自动呈现。我目前正在使用redislite进行缓存,请帮我提供一个解决方案。

UPDATE:使用React或Angular JS这样的前端框架似乎可以解决我的"避免html模板渲染";django案。我不想让django在渲染html上浪费时间,所以我想到了缓存模板。

您可以使用cache_page缓存每个视图。这可能最适合你想要做的事情

from django.views.decorators.cache import cache_page
@cache_page(60 * 15)  # 15 mins
def my_view(request):
...

或者,您可以缓存模板片段,使用cache模板标记和一个时间(以秒为单位(来缓存标记块;

{% load cache %}
{% cache 500 sidebar %}
.. sidebar ..
{% endcache %}

这种类型的缓存可以像上面一样简单,也可以根据登录用户的不同进行更复杂的缓存。你可以在这里阅读上的文档

最新更新