Primeros pasos con GAE y Django

Mi tutorial step-by-step:

  • Te bajas el GAE SDK y te lo instalas
  • Te bajas Django, si no lo tuvieras y quieres usar una versión moderna (>0.96)
  • Crea tu proyecto django, donde quieras: django-admin.py startproject xxx
  • Modifica el settings.py quitar todas las referencias a la BBDD, sessions, auth y admin. Ver esta nota
  • Copiar django framework y todo su contenido en la raiz del proyecto
  • Añade un fichero app.yaml, descriptor del proyecto, que contenga:
application: aio
version: 1
runtime: python
api_version: 1
handlers:
- url: /static
static_dir: site_media
- url: /.*
  script: main.py
  • Crea un fichero main.py, conteniendo lo siguiente:
import logging, os, sys

# Google App Engine imports.
from google.appengine.ext.webapp import util

# Remove the standard version of Django.
for k in [k for k in sys.modules if k.startswith('django')]:
  del sys.modules[k]

# Force sys.path to have our own directory first, in case we want to import
# from it.
sys.path.insert(0, os.path.abspath(os.path.dirname(__file__)))

# Django imports and other code go here...
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'
import django.core.handlers.wsgi

def main():
  # Run Django via WSGI.
  application = django.core.handlers.wsgi.WSGIHandler()
  util.run_wsgi_app(application)

if __name__ == '__main__':
  main()
  • Crea los modelos usando los Types y Properties delGAE
  • Si vas a usar ModelForms también. Recuerda que los forms normales y los formset son los de django.
  • Para hacer las queries, usa estos comandos.
  • Para ejecutar el proyecto: ./dev_appserver.py <projecto>
  • Para acceder al admin, y a una consola interactiva, puedes verlo desde aquí: http://localhost:8080/_ah/admin
  • Todo lo demás funciona igual. Eso sí, ojo con la librería contrib.auth, que tampoco existe, se usan cuentas de google.
  • Por supuesto, la mayoría de pluggables fallarán, porque hay que migrar a los nuevos modelos…

Tengo el amigo invisible más o menos listo, tengo que probar el envío de mails, y luego lo subiré a los servidores de Google. A ver si mañana lo termino.

Be First to Comment

Leave a Reply

Your email address will not be published. Required fields are marked *