Tutorial de Django: Cómo iniciar una aplicación con Django
Si aún no conoces Django , el framework de Python que nos permite crear aplicaciones web de forma rápida, no te puedes perder este tutorial en el que iremos creando un álbum de fotos , para ver de forma práctica los conceptos básicos. Como punto de inicio es una buena práctica trabajar sobre un entorno virtual, que nos permita tener instalaciones específicas del proyecto en el que estamos y para hacerlo vamos a usar virtualenvwrapper . Comprobamos que lo tenemos instalado. ( Aquí puedes ver como instalarlo)
openwebinars@~/aplicaciones: pip show virtualenvwrapper --- Name: virtualenvwrapper Version: 4.2 Location: /usr/local/lib/python2.7/dist-packages Requires: virtualenv, virtualenv-clone, stevedore openwebinars@~/aplicaciones:
Ahora podemos crear el entorno virtual en el que vamos a trabajar, que llamaremos tutorial
openwebinars@~/aplicaciones: mkvirtualenv tutorial New python executable in tutorial/bin/python Installing setuptools, pip...done. (tutorial)openwebinars@~/aplicaciones:
Podemos ver que ahora tenemos delante del prompt el nombre de nuestro entorno entre paréntesis, esto nos indica que estamos dentro. Otros comandos útiles son: deactivate : Para salir del entorno. workon : Para ver los entornos disponibles. workon [entorno]: Para activar un entorno; workon tutorial en nuestro caso. rmvirtualenv [entorno]: Para borrar un entorno. ¡Recuerda! antes tienes que haber salido de él. Con nuestro entorno listo, podemos empezar a prepararlo, para ello vamos a instalar Django y, como nuestra aplicación va a trabajar con imágenes , también necesitamos Pillow .
(tutorial)openwebinars@~/aplicaciones: pip install Django==1.7, Pillow Downloading/unpacking Django==1.7 Downloading Django-1.7-py2.py3-none-any.whl (7.4MB): 7.4MB downloaded Downloading/unpacking Pillow Downloading Pillow-2.6.1.tar.gz (7.3MB): 7.3MB downloaded --- Successfully installed Django Pillow Cleaning up... (tutorial)openwebinars@~/aplicaciones: (tutorial)openwebinars@~/aplicaciones: pip list argparse (1.2.1) Django (1.7) ipython (2.3.0) Pillow (2.6.1) pip (1.5.6) setuptools (3.6) wsgiref (0.1.2) (tutorial)openwebinars@~/aplicaciones:
Con el proceso de instalación terminado podemos crear nuestro proyecto que llamamos myapps , usa el comando:
(tutorial)openwebinars@~/aplicaciones: django-admin.py startproject myapps (tutorial)openwebinars@~/aplicaciones:
Ya tenemos el proyecto creado y sobre este podremos ir añadiendo aplicaciones a parte de las que ya vienen con Django, pero esto lo veremos más adelante, antes vamos a ver qué aspecto tiene; El comando tree nos muestra la estructura .
(tutorial)openwebinars@~/aplicaciones: tree myapps myapps ├── manage.py └── myapps ├── __init__.py ├── settings.py ├── urls.py └── wsgi.py 1 directory, 5 files (tutorial)openwebinars@~/aplicaciones:
En este primer post vamos a usar solo dos de estos ficheros, ./manage.py y ./myapps/settings.py . El primero nos va a permitir realizar acciones sobre el proyecto desde la línea de comandos, el segundo es el fichero de configuración propio del proyecto. En este punto ya podemos crear la aplicación, vamos al directorio ./myapps y ejecutamos el siguiente comando :
(tutorial)openwebinars@~/aplicaciones/myapps: python manage.py startapp album (tutorial)openwebinars@~/aplicaciones/myapps: (tutorial)openwebinars@~/aplicaciones/myapps: tree album album ├── admin.py ├── __init__.py ├── migrations │ └── __init__.py ├── models.py ├── tests.py └── views.py 1 directory, 6 files (tutorial)openwebinars@~/aplicaciones/myapps:
Aquí podemos ver como es el directorio de nuestra aplicación album. Vamos ahora al directorio ./myapps y editamos el fichero de configuración settings.py para añadir nuestra aplicación en la tupla INSTALLED_APPS; Debería tener este aspecto.
INSTALLED_APPS = ( 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'album', )
Antes de guardar los cambios en el fichero de configuración, buscamos el diccionario DATABASES, en este tutorial usaremos SQLite , la base de datos que nos ofrece Django por defecto.
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), } }
Y por último establecemos la zona horaria en la que nos encontramos, aquí puedes verlas todas, Europa/Madrid en nuestro caso.
TIME_ZONE = 'Europe/Madrid'
Ya podemos guardar los cambios en settings.py. Una de las aplicaciones que nos ofrece Django por defecto es un administrador desde el que podremos añadir o editar contenidos en nuestra aplicación, esto nos va a facilitar mucho las cosas. Para iniciarlo necesitamos crear las tablas necesarias y posteriormente podremos crear el usuario con el que tendremos acceso. Para el primer paso ejecutamos el siguiente comando.
(tutorial)openwebinars@~/aplicaciones/myapps: python manage.py migrate Operations to perform: Apply all migrations: admin, contenttypes, auth, sessions Running migrations: Applying contenttypes.0001_initial... OK Applying auth.0001_initial... OK Applying admin.0001_initial... OK Applying sessions.0001_initial... OK (tutorial)openwebinars@~/aplicaciones/myapps:
Con esto lo que hacemos es recorrer la lista de aplicaciones que tenemos en nuestro proyecto, en INSTALLED_APPS, dentro del fichero settings.py e ir creando las tablas necesarias en la base de datos. También podemos ver que se ha creado un fichero db.sqlite3 que será nuestra base de datos.
(tutorial)openwebinars@~/aplicaciones/myapps: ll -rt total 56 -rwxrwxr-x 1 jose jose 249 oct 21 20:24 manage.py* drwxrwxrwx 4 jose jose 4096 oct 22 19:43 ../ drwxrwxr-x 2 jose jose 4096 oct 22 20:22 myapps/ drwxrwxr-x 3 jose jose 4096 oct 22 20:22 album/ -rw-r--r-- 1 jose jose 36864 oct 22 20:22 db.sqlite3 drwxrwxr-x 4 jose jose 4096 oct 22 20:22 ./ (tutorial)openwebinars@~/aplicaciones/myapps:
Con la base de datos lista, vamos a crear el usuario .
(tutorial)openwebinars@~/aplicaciones/myapps: python manage.py createsuperuser Username (leave blank to use 'administrador'): admin Email address: admin@admin.com Password: ***** Password (again): ***** Superuser created successfully. (tutorial)openwebinars@~/aplicaciones/myapps:
Ya tenemos nuestro proyecto listo para empezar a desarrollar nuestra aplicación, para probarlo iniciamos el servidor de desarrollo.
(tutorial)openwebinars@~/aplicaciones/myapps: python manage.py runserver Performing system checks... System check identified no issues (0 silenced). October 22, 2014 - 20:32:42 Django version 1.7, using settings 'myapps.settings' Starting development server at http://127.0.0.1:8000/ Quit the server with CONTROL-C.
En un navegador buscamos la dirección http://127.0.0.1:8000/


En el siguiente post , veremos como crear el modelo de datos para nuestro álbum y cómo incluirlo en el administrador para poder gestionarlo. Como hemos visto, Django nos ofrece mucho trabajo hecho para que solo tengamos que pensar en nuestra aplicación.