将Django的缓存模块在谷歌App Engine的工作吗?(Will Django's c

2019-09-19 05:11发布

我在谷歌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.core.cache

如果某些或所有这些模块应该工作,是有必要的修改,以使它们正常工作,以及是否有任何问题或陷阱一个人应该知道,使用的时候吗?

我已经仔细阅读文档,并花了一些时间搜索谷歌,但我还没有看到这个问题的答案。 我怀疑这可能是一个“交钥匙”解决方案,但我谨慎使用Django的类,而至少一个参考别人已经做到了没有问题的。

非常感谢你。

Answer 1:

在谷歌App Engine上运行Django说:“有可能使用几乎整个Django的堆栈在谷歌应用程序引擎,包括中间件。” 此外,该页面有一个例子,其中包括你刚才提到的一个类,所以至少一个应该工作:

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

各种网站,如这一个对使用的AppEngine和Django的缓存代码,比如django.middleware.cache.UpdateCacheMiddleware代码。 见这个谷歌搜索的其他参考质量参差不齐。 ;)

我还没有实际用过这东西,所以我只能把别人的话,但它看起来好像多的人都做到了。

编辑:Django的门票7398和7399是相关的这一点。



Answer 2:

不,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是什么样子。



Answer 3:

您应该检查这个http://code.google.com/p/google-app-engine-django/



Answer 4:

你要这个https://github.com/django-nonrel/djangoappengine



文章来源: Will Django's cache modules work on Google App Engine?