2010-07-26 26 views
6

Soy nuevo en GAE y estoy creando una aplicación con el framework webapp. Me preguntaba cuándo configuró manejadores en su app.yaml y cuándo los define en su WSGI?Google App Engine: controladores y URL WSGI

Al principio pensé que solo tenías un archivo principal main.py ejecutando la aplicación WSGIA pero observé si deseas usar la autorización GAE que defines en los manejadores. ¿Eso significa que ejecuta múltiples aplicaciones WSGIA?

Estaba leyendo los documentos sobre "Requerir registro o estado de administrador" y parece que tienen diferentes aplicaciones para diferentes roles.

Quizás algo como esto?

- general.py - entrada:
- user.py - iniciar sesión: necesaria
- admin.py: - entrada: administrador

Pero tal vez es malo tener sus URL WSGI repartidos por todo ¿sobre el lugar?

Si mal no recuerdo si ejecuta django en GAE, señala un archivo py y deja que el marco maneje todo?

No quiero utilizar Django aún así que me pregunto si alguien tiene algunos consejos/mejores prácticas sobre cómo hacer url/hanlders con webapp?

Respuesta

9

Cualquiera de los métodos de enrutamiento URL es aceptable.

URL de enrutamiento
Si se puede estructurar fácilmente su aplicación para utilizar app.yaml enrutamiento (y autorización) a base de app.yaml, entonces vale la pena probar: que va a ser menos código que tendrá que depurar , prueba y mantiene

He aquí un ejemplo (de Google) con múltiples puntos de entrada: http://google-app-engine-samples.googlecode.com/svn/trunk/gdata_feedfetcher/

rendimiento debe ser superior con app.yaml autorización: No se necesita ser ejecutar el script Python para determinar si un usuario es un administrador de el sitio.

una tabla de asignación de dirección URL
Si su aplicación necesita algo más allá de URL de ruta y la autorización básica entonces usted puede notar que tiene un app.yaml comparativamente escasa y utilizando una tabla de mapeo URL más grande.

Por ejemplo, desea mostrar una página a todos los usuarios, pero adicionalmente desea un enlace de "inicio de sesión" para mostrarse para un administrador. This code (for a simple blog) usa esta estructura.

+0

Gracias El código de ejemplo de Adam siempre es bueno. El código del blog realmente me ayudará. – Pickels

+0

¿No se agregan controladores múltiples al tiempo de carga de la aplicación? Deben importar los mismos módulos y varios manejadores usan más espacio que solo 1. – stesch