Django的缓存模块可以在Google App Engine上运行吗?

时间:2009-07-16 16:18:44

标签: django google-app-engine memcached django-cache

我正在Google App Engine上运行Django(1.0.2),并且想知道以下Django caching modules中哪些(如果有)本身可以与Google's memcache实施一起使用:

Middlewear

  • django.middleware.cache.UpdateCacheMiddleware

  • django.middleware.common.CommonMiddleware

  • django.middleware.cache.FetchFromCacheMiddleware

装修

  • django.views.decorators.cache.cache_page

模板片段缓存

在模板中:

{{ load cache }}{% cache 500 cache_name %}...cached...{% endcache %}

低级API

  • django.core.cache

如果这些模块中的部分或全部应该起作用,是否需要进行任何必要的更改才能使它们正常工作,在使用它们时是否应该注意任何问题或陷阱?

我仔细阅读了文档并花了一些时间搜索Google,但我还没有看到答案。我怀疑它可能是一个“交钥匙”的解决方案,但我很担心使用Django类而没有至少一个其他人没有问题的参考。

谢天谢地。

4 个答案:

答案 0 :(得分:8)

不,app引擎提供自定义memcached API。你需要做什么(可能已经有一个开源实现,我不知道),是为这个API写一个Django缓存后端,它们非常简单,你可以使用现有的memcached后端作为新单位的基础:http://code.djangoproject.com/browser/django/trunk/django/core/cache/backends/memcached.pyhttp://code.google.com/appengine/docs/python/memcache/usingmemcache.html显示了App Engine memcached API的样子。

答案 1 :(得分:4)

Running Django on Google App Engine说“可以在Google App Engine上使用几乎整个Django堆栈,包括中间件。”此外,该页面有一个示例,其中包含您询问的其中一个类,因此至少应该有一个类:

MIDDLEWARE_CLASSES = (
'django.middleware.common.CommonMiddleware',
...

this one等各种网站都有使用AppEngine和Django缓存代码的代码,例如django.middleware.cache.UpdateCacheMiddleware。有关其他参考资料,请参阅this Google search,质量参差不齐。 ;)

我实际上并没有使用过这些东西,所以我只能接受别人说的话,但看起来似乎已经有多人做过了。

修改:Django门票73987399与此相关。

答案 2 :(得分:0)

答案 3 :(得分:0)