2010-07-26 21 views
6

Sono nuovo di GAE e sto creando un'applicazione con il framework webapp. Mi chiedevo quando si fa a impostare i gestori nel vostro app.yaml e quando li si definisce nella tua WSGI?Google App Engine: gestori e URL WSGI

All'inizio pensavo che avessi solo un file main.py principale che eseguiva l'applicazione WSGIA ma ho notato che se si desidera utilizzare l'autorizzazione GAE lo si definisce nei gestori. Ciò significa che esegui più applicazioni WSGIA?

Stavo leggendo i documenti sul tema "La richiesta di Accesso o amministratore di stato" e sembra che hanno applicazioni diverse per ruoli diversi.

Forse qualcosa del genere?

- general.py - login:
- user.py - login: richiesta
- admin.py: - login: admin

ma forse è male avere i tuoi URL WSGI diffuse in tutto oltre il posto?

Se non ricordo male se si esegue Django su GAE si punta a un file py e lasciare gestire il quadro tutto?

Non voglio ancora usare Django, quindi mi chiedevo se qualcuno avesse qualche suggerimento/best practice su come fare url/hanlders con webapp?

risposta

9

Entrambi i metodi di URL routing è accettabile.

app.yaml a base di routing URL
Se si può facilmente strutturare la vostra applicazione per utilizzare app.yaml instradamento (e autorizzazione), allora vale la pena provare: sarà meno codice si dovrà eseguire il debug , testare e mantenere.

Ecco un esempio (da Google) con più punti di ingresso: http://google-app-engine-samples.googlecode.com/svn/trunk/gdata_feedfetcher/

prestazioni dovrebbero essere superiore con app.yaml autorizzazione: Lo script Python non avrà bisogno di essere eseguito per determinare se un utente è un amministratore di il sito.

una tabella URL di mappatura
Se la vostra applicazione ha bisogno di qualcosa al di là di base URL-routing e l'autorizzazione allora si può trovare a dover un app.yaml relativamente scarsa e con un grande tavolo URL-mapping.

Ad esempio, si desidera visualizzare una pagina per tutti gli utenti, ma in aggiunta si desidera che venga visualizzato un collegamento "di accesso" per un amministratore. This code (for a simple blog) utilizza questa struttura.

+0

Grazie codice Adam esempio è sempre bello. Il codice del blog mi aiuterà davvero. – Pickels

+0

Non più gestori aggiungere al tempo di caricamento della domanda? Devono importare gli stessi moduli e più gestori utilizzano più spazio di solo 1. – stesch