Published: Oct 29, 2009 by Noe Nieto
Intro
Ésta es la primera vez que intento hacer el hola mundo con Django. Como vengo
del mundo de Plone intenté ver si se podía hacer de manera sencilla con
zc.buildout
.
Me gusta la idea de zc.buildout
. Brinda un entorno de desarrollo repetible
ente diferentes máquinas. Se me hizo la opción natural de probar Django, así
que, después de la sorpresa de saber que Django no viene con “buildout”
integrado, me di a la tarea de intentar averguar si se podía hacer y esto es
lo que encontré.
Mi primera impresión de Django.
Repito, vengo del mundo de plone, ahí todo es muy a la “2.4”. Lo primero que veo es que puedo correr Django con el Python 2.6.4rc2 así que puedo usar el python que ya trae la distro Ubuntu de mi laptop. Esto también es muy cómodo (jajaj, aunque no se por qué).
Aunque Karmic ya trae las últimas versiones de Django, la experiencia me ha
obligado a no depender de paquetes específicos de cada Sistema Operativo. Es
por eso que decidí intentar instalar zc.buildout
.
Construyendo un buildout para Django
El post de Jacob Kaplan-Moss Developing Django apps with zc.buildout es la primera guía que leí. Es un artículo muy bueno para poder empezar.
Y basándome en el dicho post, he aquí la estructura del directorio:
mydjangobuildout/
LICENSE
README
bootstrap.py
buildout.cfg
setup.py
src/
Intencionalmente no puse nada en src/
.
Ahora, basandome en este otro post de Dan Fairs A Django Development Environment with zc.buildout
me encuentro que usa una receta para instalar PIL con buildout (Algo que
nunca pude hacer con Plone por que no sabía como hacerlo). Así esta mi
buildout.cfg
sin ninguna aplicación Django, sólo sus dependencias.
[buildout]
executable=/usr/bin/python2.6
parts =
PIL
python
django
eggs =
PIL
[python]
recipe = zc.recipe.egg
interpreter = python
eggs = ${buildout:eggs}
[django]
recipe = djangorecipe
version = 1.1.1
eggs = ${buildout:eggs}
[PIL]
recipe = zc.recipe.egg
egg = PIL==1.1.6
find-links = http://dist.repoze.org/
Funciona a la perfección. Incluso puedo arrancar Django aunque no tengo ninguna aplicación para ello
Conclusión
Me agrada mucho usar zc.buildout para construir mi app en Django. Ya solo me falta aprender Django.