Wie verwende ich Caching mit Django? (Vorzugsweise in GAE)

9

Ich kann Memcached nicht mit GAE arbeiten lassen. Wenn ich das Google Cache-Back-End verwende, werden die Ansichten nach dem Lernprogramm auf der GAE-Website nicht zwischengespeichert. Daher habe ich die URLs zwischengespeichert, wie in Django-Tutorial vorgeschlagen (z. B.

) %Vor%

dann bekomme ich das:

%Vor%

AttributeError: 'Client' Objekt hat kein Attribut 'default_timeout', wenn ich google backend ( django.core.cache.backends.memcached.MemcachedCache ) benutze bekomme ich

%Vor%

Hier hat jemand vorher gefragt, ob er das Django-Caching-Backend verwenden soll und schlägt vor, python-memcached zu installieren. Ich habe das getan und es funktioniert immer noch nicht.

Jemand hat vorgeschlagen, Backend für GAE zu schreiben. Ich konnte es nicht ganz verstehen. Wenn die beste Antwort auf diese Frage Schritt für Schritt erklärt, wie man ein Backend sehr grob schreibt, dann werde ich diese Antwort akzeptieren.

    
Emmet B 05.02.2013, 09:47
quelle

2 Antworten

3

Nicht alle Funktionen von Django funktionieren in App Engine. Daher ist die Funktion, die Sie verwenden möchten, für die App Engine-Django-Bibliothek nicht zulässig, da die App Engine-Infrastruktur einschränkt.

Wenn ich Sie richtig verstehe, wollen Sie eine ganze Seite cachen oder mit anderen Worten die ganze Antwort von View? Sie können dies auf diese Weise tun ( nur Beispiel ):

%Vor%

Zu Ihrem Zweck können Sie Djangos Middleware mit automatischem Caching jeder Seite erstellen, die Sie benötigen.

Stellen Sie außerdem sicher, dass Sie alle nicht verwandten / nicht akzeptablen Inhalte in App Engine aus der Konfigurationsdatei entfernt haben. In Anbetracht der Hilfeseite ( Ссылка ) sieht die minimale Konfiguration folgendermaßen aus:

%Vor%

Denken Sie daran, dass App Engine über eigenes natives Caching verfügt, z. Die Python-Laufzeitumgebung speichert importierte Module zwischen Anforderungen auf einem einzelnen Webserver, und Sie können App Engine anweisen, das CGI-Handlerscript selbst zusätzlich zu den importierten Modulen zwischenzuspeichern.

Hilfreiche Links: Ссылка

    
Nikolay Baluk 01.03.2013, 23:26
quelle
0

IMHO hinzufügen noch eine weitere Frage zu diesem macht es nicht weniger verwirrend .. Django-Nonrel ≤1,3 und Memcache auf Google App Engine hat möglicherweise eine Antwort auf Ihre Frage.

    
Chris Wesseling 14.02.2013 19:35
quelle