2009-06-18 18 views

Antwort

12

verbrachte ich einige Zeit versucht, die gleiche Frage zu beantworten ... es scheint mir, dass das Schwierigste, was zu GAE zu übertragen sind Djangos Modelle ... in dem Sinne, dass sie erfordern verschiedene Modifikationen und Umdenken, vor allem, weil GAE Backend keine relationale Standard-DB ist, sondern googles BigTable. Ich fand einen schönen Intro zu diesem hier:

http://www.youtube.com/watch?v=rRCx9e38yr8

Anyways, es lohnt sich eine jener ‚Patches‘ herunterladen und haben eine mit ihm gehen!

Für mich ist die beste Lösung die 'App-Engine-Patch'. Ich habe das Beispielprojekt heruntergeladen und es hat sofort funktioniert! (Beachten Sie, dass Sie das GAE SDK separat installieren müssen) Ein Mörder-Feature für mich ist die Tatsache, dass die django-admin und viele andere klassische Django-Funktionen auch portiert wurden !!!

http://code.google.com/p/app-engine-patch/

Die documentation ist noch recht minimal meiner Meinung nach, aber es ist gut genug, um Sie zu gehen. Es wird Ihnen helfen, die offiziellen GAE-Dokumente zu überfliegen!

+1

Ich fand die App Engine Patch zu einem PIA. Es sucht immer nach seltsamen Python-Modulen, gibt oft seltsame Fehler zurück und funktioniert völlig anders als django runserver. – drozzy

+0

ist dieser Patch besser als Django-Nonrel? –

+1

HINWEIS: App-Engine-Patch ist alt und verlassen. Benutze es nicht. – dfrankow

0

Die Menge an Schmerzen hängt davon ab, wie viel Code Sie wiederverwenden möchten. Da der Datastore SQL leider nicht unterstützt, können Sie häufig keine django-pluggable-App verwenden und sie in Ihrem GAE-Projekt verwenden.

App-Engine-Patch scheint den anderen Django-Helfern voraus zu sein, die Standardanwendungen (Sites, ContentTypes, Flatpages) auf GAE zu bringen. Ich habe app-engine-patch bei mehreren gae-Projekten verwendet, und wenn man einmal verstanden hat, wie man ein django-sql-Modell in ein django-gae-Modell portiert und sql in datastore-Abfragen umwandelt, kann man sehr schnell etwas lernen Kurve.

appengine-helper versucht, die Datastore-Lücke zu überbrücken, indem Sie ein Modell bereitstellen, sodass Sie Ihre Modell-Oberklassen nicht ändern müssen, aber ich habe festgestellt, dass Sie schließlich ManyToMany-Beziehungen und beliebige SQL ändern müssen Vorteil ist minimal. ae-patch hat eine Roadmap, um ein ae-Datenspeicher-Backend zur Verfügung zu stellen, aber es wird wahrscheinlich für eine Weile nicht passieren.

3

31.01.2012, Google released App Engine 1.6.2 unterstützt Django Out-of-the-Box.

+0

Sie müssen es jedoch mit CloudSQL verwenden oder können Sie auch mit dem HRD Datasotre gehen –

6

Sie müssen django-nonrel (source) verwenden.

Sie werden noch viele Fragen finden:

  • Many2Many Beziehungen nicht unterstützt
  • Gefälschte verbindet Anstieg Anzahl der Abfragen
  • App Engine erlaubt keine Python lib mit Sockel oder C Abhängigkeiten (Sentry , lxml ...)

Sie können versuchen, einen frühzeitigen Zugriff auf CloudSQL zu erhalten.

Ansonsten sind Sie nicht App Engine verwenden Zwang, können Sie über die Verwendung denken:

Billiger und mehr Kontrolle mit Unterstützung Anforderung Dateien wie Pip.

0

Google hat jetzt seinen Cloud SQL-Speicher gestartet. Das ist MySQL 5.5 in der Cloud. IMO, das ist eine sehr gute Möglichkeit, deine Django-App in die Cloud zu migrieren. Sie haben eine kostenlose Testversion bis zum 1. Juni 2013.

Wenn Sie einige Tipps benötigen, wie Sie Ihr Django-Projekt für Appengine und Cloud SQL einrichten, habe ich eine tutorial for that geschrieben.