我正在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
装修
模板片段缓存
在模板中:
{{ load cache }}{% cache 500 cache_name %}...cached...{% endcache %}
低级API
如果这些模块中的部分或全部应该起作用,是否需要进行任何必要的更改才能使它们正常工作,在使用它们时是否应该注意任何问题或陷阱?
我仔细阅读了文档并花了一些时间搜索Google,但我还没有看到答案。我怀疑它可能是一个“交钥匙”的解决方案,但我很担心使用Django类而没有至少一个其他人没有问题的参考。
谢天谢地。
答案 0 :(得分:8)
不,app引擎提供自定义memcached API。你需要做什么(可能已经有一个开源实现,我不知道),是为这个API写一个Django缓存后端,它们非常简单,你可以使用现有的memcached后端作为新单位的基础:http://code.djangoproject.com/browser/django/trunk/django/core/cache/backends/memcached.py。 http://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,质量参差不齐。 ;)
我实际上并没有使用过这些东西,所以我只能接受别人说的话,但看起来似乎已经有多人做过了。
答案 2 :(得分:0)
答案 3 :(得分:0)