我在谷歌App Engine上运行Django的(1.0.2),并想知道哪些(如果有的话)以下的Django的缓存模块应该与固有工作谷歌的内存缓存的实现:
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的类,而至少一个参考别人已经做到了没有问题的。
非常感谢你。
在谷歌App Engine上运行Django说:“有可能使用几乎整个Django的堆栈在谷歌应用程序引擎,包括中间件。” 此外,该页面有一个例子,其中包括你刚才提到的一个类,所以至少一个应该工作:
MIDDLEWARE_CLASSES = (
'django.middleware.common.CommonMiddleware',
...
各种网站,如这一个对使用的AppEngine和Django的缓存代码,比如django.middleware.cache.UpdateCacheMiddleware代码。 见这个谷歌搜索的其他参考质量参差不齐。 ;)
我还没有实际用过这东西,所以我只能把别人的话,但它看起来好像多的人都做到了。
编辑:Django的门票7398和7399是相关的这一点。
不,App Engine提供定制memcached的API。 你需要做什么(有可能已经是一个开源实现这一点,我不知道),是写一个Django缓存后端这个API,他们很简单,你可以使用现有的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是什么样子。
您应该检查这个http://code.google.com/p/google-app-engine-django/
你要这个https://github.com/django-nonrel/djangoappengine