如何将App Engine Django自动化为memcached我的模板?

时间:2014-12-03 20:26:49

标签: python django google-app-engine memcached

我有一个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'),
)

有可能吗?

你有这样的方法吗? 你有什么建议吗?

1 个答案:

答案 0 :(得分:2)

据推测你使用django-nonrel。在这种情况下,您可以使用Django的所有常规缓存功能,包括完全符合您要求的per-view cache decorator

(注意,为清楚起见,它似乎不是您要缓存的模板,而是视图本身的输出。)