2010-07-26 10 views
6

Ich bin neu bei GAE und erstelle eine Anwendung mit dem Webapp-Framework. Ich frage mich, wann Sie Handler in Ihrer app.yaml setzen und wenn Sie sie in Ihrem WSGI definieren?Google App Engine: Handler und WSGI-URLs

Zuerst dachte ich, dass Sie nur eine main.py-Hauptdatei haben, die die WSGIApplication ausführt, aber ich merke, wenn Sie die GAE-Berechtigung verwenden wollen, definieren Sie diese in den Handlern. Das bedeutet, dass Sie mehrere WSGIA-Anwendungen ausführen?

Ich habe die Dokumente über "Requiring Login oder Administrator Status" gelesen und es scheint, dass sie unterschiedliche Anwendungen für verschiedene Rollen haben.

Vielleicht so etwas?

- general.py - Login:
- user.py - login: required
- admin.py: - Anmeldung: admin

Aber vielleicht ist es schlecht Ihr WSGI Urls alle ausgebreitet haben überall?

Wenn ich mich richtig erinnere, wenn Sie django auf GAE ausführen, zeigen Sie auf eine Py-Datei und lassen das Framework alles behandeln?

Ich möchte Django noch nicht verwenden, also war es ein Wunder, wenn jemand einige Hinweise/Best Practices über URL/hanlders mit webapp hatte?

Antwort

9

Jede URL-Routing-Methode ist akzeptabel.

app.yaml-basierte URL-Routing
Wenn Sie leicht Ihre Anwendung strukturieren können app.yaml Routing (und Autorisierung) zu verwenden, dann ist es einen Versuch wert: es weniger Code sein werden Sie zum Debuggen haben werden , testen und pflegen.

Hier ist ein Beispiel (von Google) mit mehreren Einstiegspunkten: http://google-app-engine-samples.googlecode.com/svn/trunk/gdata_feedfetcher/

Leistung sollte mit app.yaml Genehmigung überlegen sein: Ihr Python-Skript wird nicht ausgeführt werden muß, um zu bestimmen, ob ein Benutzer ein Admin ist der Standort.

ein URL-Mapping-Tabelle
Wenn Ihre App etwas über grundlegende URL-Routing und Genehmigung muss dann finden Sie vielleicht selbst eine vergleichsweise spärlich app.yaml und eine größere URL-Mapping-Tabelle.

Sie möchten beispielsweise allen Benutzern eine Seite anzeigen, möchten aber zusätzlich einen "Login" -Link für einen Administrator anzeigen. This code (for a simple blog) verwendet diese Struktur.

+0

Dank Adam Beispielcode ist immer nett. Der Blog Code wird mir wirklich helfen. – Pickels

+0

Tragen nicht mehrere Handler zur Ladezeit der Anwendung bei? Sie müssen dieselben Module importieren und mehrere Handler benötigen mehr Platz als nur 1. – stesch