Django 的缓存模块可以在 Google App Engine 上工作吗?

发布于 2024-07-28 18:04:17 字数 1052 浏览 8 评论 0原文

我正在 Google App Engine 上运行 Django (1.0.2),并且想知道以下哪些(如果有)Django 缓存模块 本质上应该与 Google 的 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

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

我仔细阅读了文档并花了一些时间搜索谷歌,但我还没有看到这个问题的答案。 我怀疑这可能是一个“交钥匙”解决方案,但我对使用 Django 类持谨慎态度,除非至少有一个其他人已经毫无问题地完成了它的参考。

非常感谢你。

I am running Django (1.0.2) on Google App Engine, and would like to know which (if any) of the following Django caching modules ought to inherently work with Google's memcache implementation:

Middlewear

  • django.middleware.cache.UpdateCacheMiddleware

  • django.middleware.common.CommonMiddleware

  • django.middleware.cache.FetchFromCacheMiddleware

Decorators

  • django.views.decorators.cache.cache_page

Template fragment caching

In a template:

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

Low level API

  • django.core.cache

If some or all of these modules ought to work, are there any changes necessary to make them work properly, and are there any concerns or pitfalls ought one be aware of when using them?

I've perused the documentation and spent some time searching Google, but I haven't seen the answer to this. I suspect it may be a "turn-key" solution, but am wary of using the Django classes without at least one reference that someone else has done it without issue.

Thank you kindly.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

没︽人懂的悲伤 2024-08-04 18:05:08

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

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

各种网站,例如 包含使用 AppEngine 和 Django 缓存代码的代码,例如 django.middleware.cache.UpdateCacheMiddleware。 请参阅此 Google 搜索,了解其他不同的参考资料质量。 ;)

我并没有真正使用过这个东西,所以我只能相信别人的说法,但似乎确实有很多人已经做到了。

编辑: Django 票证 73987399 与此相关。

Running Django on Google App Engine says "it is possible to use nearly the entire Django stack on Google App Engine, including middleware." Also, that page has an example which includes one of the classes you asked about, so at least that one ought to work:

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

Various sites such as this one have code for using AppEngine and the Django caching code, such as django.middleware.cache.UpdateCacheMiddleware. See this Google search for other references, of varying quality. ;)

I haven't actually used this stuff, so I can only take others' word for it, but it does seem as though multiple people have done it.

Edit: Django tickets 7398 and 7399 are relevant to this.

后知后觉 2024-08-04 18:04:54

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

No, app engine provides a custom memcached API. What you'll need to do (and there may already be an open source implementation of this, I don't know), is write a Django cache backend for this API, they're pretty simple, you can use the existing memcached backend as the basis for your new one: http://code.djangoproject.com/browser/django/trunk/django/core/cache/backends/memcached.py . http://code.google.com/appengine/docs/python/memcache/usingmemcache.html shows what the App Engine memcached API looks like.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文