2009-06-18 36 views

Respuesta

12

pasé algún tiempo tratando de responder a la misma pregunta ... me parece que lo más difícil de transferir a GAE son modelos de Django ... en el sentido de que requieren varias modificaciones y reconsideración, principalmente porque el backend de GAE no es un DB relacional estándar, sino el BigTable de Google. He encontrado una buena introducción a esta aquí:

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

De todas formas, vale la pena la descarga de uno de estos 'parches' y tienen un ir con él!

Para mí, la mejor solución es 'app-engine-patch'. ¡Descargué el proyecto de muestra y funcionó inmediatamente! (Tenga en cuenta que necesita tener el SDK de GAE instalado por separado) Una característica clave para mí es el hecho de que el django-admin y muchas otras funciones clásicas de django también se han portado.

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

El documentation es todavía bastante mínima en mi opinión, pero es lo suficientemente bueno para que te va. Sin embargo, ¡te ayudará a hojear los documentos oficiales de GAE!

+1

Encontré el parche del motor de la aplicación como un PIA. Siempre busca algunos módulos extraños de python, a menudo devuelve errores extraños y funciones completamente diferentes a django runserver. – drozzy

+0

es este parche mejor que Django-Nonrel? –

+1

NOTA: app-engine-patch es antiguo y está abandonado. No lo uses – dfrankow

0

La cantidad de dolor depende de la cantidad de código existente que desea reutilizar. Lamentablemente, debido a que Datastore no es compatible con SQL, a menudo no puede simplemente tomar cualquier aplicación django-conectable y usarla en su proyecto GAE.

App-engine-patch http://code.google.com/p/app-engine-patch/ parece estar por encima de los otros django helpers al llevar las aplicaciones estándar (Sites, ContentTypes, Flatpages) a GAE. He usado app-engine-patch en varios proyectos gae, y una vez que entiendes cómo portar un modelo django-sql a un modelo django-gae y convertir sql a consultas en el almacén de datos, las cosas se pueden hacer muy rápidamente, pero siempre hay un aprendizaje curva.

appengine-helper intenta salvar la brecha Datastore proporcionando un modelo para que no tenga que cambiar las superclases de su modelo, pero he encontrado que finalmente tiene que cambiar ManyToMany relaciones y cualquier SQL de todos modos, por lo que la ventaja termina siendo mínima. ae-patch tiene una hoja de ruta para tratar de proporcionar un back-end ae-datastore, pero probablemente no sucederá por un tiempo.

3

31.01.2012, Google released App Engine 1.6.2 compatible con Django desde el primer momento.

+0

¿Tiene que usarlo con CloudSQL o también puede usar The HRD Datasotre? –

6

Debe usar django-nonrel (source).

Usted va a encontrar un montón de problemas:

  • relaciones Many2Many no apoyaron
  • falso aumento une número de consultas
  • App Engine no permite que ningún lib pitón con zócalo o dependencias C (centinela , lxml ...)

Puede intentar obtener acceso anticipado al CloudSQL.

lo contrario, no está de restricción para utilizar App Engine, se puede pensar en usar:

Más barato y más control con los ficheros de necesidades de apoyo como de pepita.

0

Google ha lanzado su almacenamiento Cloud SQL. Eso es realmente MySQL 5.5 en la nube. OMI es una forma muy agradable de migrar su aplicación Django a la nube. Tienen una versión de prueba gratuita hasta el 1 de junio de 2013.

Si necesita algunos consejos sobre cómo configurar su proyecto Django para Appengine y Cloud SQL, he escrito un tutorial for that.