4

我在 Google App Engine 上运行 Django (1.0.2),并且想知道以下Django 缓存模块中的哪些(如果有)应该与Google 的 memcache实现一起工作:

中间件

  • 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 类而没有至少一个参考,而其他人已经完成它而没有问题。

非常感谢你。

4

4 回答 4

8

不,应用引擎提供了一个自定义的 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 的外观。

于 2009-07-26T05:56:10.887 回答
4

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

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

诸如此类的各种站点都有使用 AppEngine 和 Django 缓存代码的代码,例如 django.middleware.cache.UpdateCacheMiddleware。请参阅此 Google 搜索以查找质量参差不齐的其他参考资料。;)

我没有真正使用过这个东西,所以我只能相信别人的话,但似乎很多人都做过。

编辑: Django 票73987399与此相关。

于 2009-07-24T23:21:15.273 回答
0

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

于 2010-07-23T16:25:17.863 回答
0

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

于 2012-01-25T12:29:11.837 回答