Будут ли кеш-модули Django работать на Google App Engine? - PullRequest
4 голосов
/ 16 июля 2009

Я использую Django (1.0.2) на Google App Engine и хотел бы знать, какой (если таковой имеется) из следующих модулей кэширования Django должен по своей природе работать с memcache Google реализация:

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

Если некоторые или все эти модули должны работать, есть ли какие-либо изменения, необходимые для их правильной работы, и есть ли какие-либо проблемы или недостатки, о которых следует знать при их использовании?

Я просмотрел документацию и провел некоторое время в поиске в Google, но я не видел ответа на этот вопрос. Я подозреваю, что это может быть решение «под ключ», но я опасаюсь использовать классы Django без хотя бы одной ссылки, что кто-то другой сделал это без проблем.

Спасибо, любезно.

Ответы [ 4 ]

8 голосов
/ 26 июля 2009

Нет, движок приложения предоставляет настраиваемый 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 показывает, как выглядит memcached API App Engine.

4 голосов
/ 25 июля 2009

Запуск Django в Google App Engine говорит, что «в Google App Engine можно использовать почти весь стек Django, включая промежуточное ПО». Кроме того, на этой странице есть пример, который включает в себя один из классов, о которых вы спрашивали, так что, по крайней мере, один должен работать:

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

Различные сайты, такие как , этот имеют код для использования AppEngine и код кэширования Django, такой как django.middleware.cache.UpdateCacheMiddleware. См. этот поиск Google для других ссылок различного качества. ;)

На самом деле я не использовал этот материал, так что я могу принять только слова других, но кажется, что это делали несколько человек.

Редактировать: Билеты Джанго 7398 и 7399 имеют отношение к этому.

0 голосов
/ 25 января 2012
0 голосов
/ 23 июля 2010

Вы должны проверить это http://code.google.com/p/google-app-engine-django/

...