我有一个App Engine应用程序,它使用Django来提供网站服务。
有动态"和"静态"页面(意思是他们不经常改变)。 我想通过memcached渲染模板来加快静态页面的加载时间。
这就是它的样子。
我在视图中更改了此代码:
from django.shortcuts import render_to_response
def myview(request):
return render_to_response('page.html')
这一个:
from django.shortcuts import render_to_response
from google.appengine.api import memcache
TEMPLATE_CACHE = 3600 * 12
def myview(request):
t = memcache.get("page.html")
if t is None:
t = render_to_response('page.html')
memcache.set("page.html", t, TEMPLATE_CACHE)
return t
但是因为我不想在我的"静态"中的每一个上实现这种行为。看来,我正在寻找一个很好的和django方式在我的urls.py中这样做:像这样:
urlpatterns = patterns('',
(r'^index/$', cacheView('views.index')),
(r'^page1/$', 'views.page1'),
(r'^page2/$', cacheView('views.page2')),
(r'^page3/$', cacheView('views.page3')),
(r'^page4/$', 'views.page4'),
)
有可能吗?
你有这样的方法吗? 你有什么建议吗?
答案 0 :(得分:2)
据推测你使用django-nonrel。在这种情况下,您可以使用Django的所有常规缓存功能,包括完全符合您要求的per-view cache decorator。
(注意,为清楚起见,它似乎不是您要缓存的模板,而是视图本身的输出。)