Bienvenidos un día más al curso de Python, hoy vamos a continuar utilizando el framework Django de Python. Como os comentamos este framework nos permitirá construir aplicaciones web de una manera rápida y sencilla. En este primer capítulo vamos a empezar con el ejemplo que vamos a ir desarrollando a lo largo de estos capítulos. Así que pongámonos manos a la obra.
Lo primero que tendremos que hacer es crear un proyecto para poder empezar su desarrollo.
Creando un proyecto
Para crear un proyecto utilizaremos las herramientas que nos proporciona el framework. Ya que sus herramientas nos van a auto generar el código que define el proyecto como Django y de este modo no tendremos que hacerlo nosotros. Dentro de este código autogenerado se encontrará la configuración de la base de datos por ejemplo.
Entonces abriremos una consola del sistema, nos dirigimos al directorio donde queremos guardar nuestro proyecto y ejecutamos el siguiente comando:
$django-admin startproject mysite
Este comando nos va a crear el directorio “mysite” en el directorio que nos encontremos. Si queremos que tenga otro nombre sólo tendremos que sustituir “mysite” por el nombre que nos guste. Si hubo algún problema durante su ejecución, siempre podréis ver que ha ocurrido ejecutando la aplicación “django-admin.py”.
El generador de proyectos os tendría que haber creado un directorio que con la siguiente estructura:
mysite/
manage.py
mysite/
__init__.py
settings.py
urls.py
wsgi.py
¿Qué significa esta estructura?
Lo primero que nos encontramos es el directorio principal que contiene todos los archivos del proyecto (La primera carpeta llamada “mysite”). Esta carpeta puede ser renombrada ya que Django no la utiliza.
Dentro de este directorio nos encontramos:
- “manage.py”: Se trata de una utilidad que se utiliza a través de la línea de comandos la cual nos va a permitir interactuar con este proyecto “Django” de varias maneras. Podéis encontrar más información en la documentación de “Django”
- El directorio “mysite/” (Dentro del directorio principal) es el paquete Python donde se encuentra el proyecto. Su nombre es el nombre de paquete Python que necesitarás usar para importar cualquier cosa dentro del mismo (por ejemplo mysite.urls).
- “mysite/__init__.py”: Un archivo vacío que le dice a Python que este directorio debe considerarse un paquete Python
- “mysite/settings.py”: En este fichero se encuentra la configuración de este proyecto Django. Para leer más sobre cómo funcionan estos settings pulsa en este enlace.
- “mysite/urls.py”: Declaración de las URL de este proyecto Django; una “tabla de contenidos” de tu sitio Django. Para leer más sobre URLs podéis entrar aquí.
- «mysite/wsgi.py»: Define el punto de entrada para servir tu proyecto mediante servidores web compatibles con WSGI. Para leer más sobre WSGI entrar aquí.
Configurar la base de datos
Ahora editemos “mysite/settings.py”. Como os hemos indicado este fichero contiene la configuración del proyecto. Se trata de un módulo Python normal, en el que se definen variables a nivel módulo, estas variables representan los settings de Django.
Por defecto, la base de datos que utiliza Django es SQLite, por lo que viene configurado para esta base de datos. Si optáis por utilizar esta base de datos no tendréis que hacer nada, ya que Python ya tiene SQlite incluido. Sin embargo, si queréis utilizar las bases de datos que os comentamos en la introducción necesitaréis instalar el motor de la base de datos y las librerías necesarias para su uso.
Si decidís, utilizar MySQL o PostgreSQL tendréis que modificar la configuración para que las pueda usar “Django”. A continuación os vamos a indicar cuáles son los parámetros a modificar. Abriremos el fichero settings.py y nos dirigiremos a “DATABASES ‘default’” para modificar sus propiedades para que coincidan con la configuración de tu conexión a la base de datos:
- ENGINE – Puede ser ‘django.db.backends.postgresql_psycopg2’, ‘django.db.backends.mysql’, ‘django.db.backends.sqlite3’ o ‘django.db.backends.oracle’.
- NAME – El nombre de la base de datos. Si estás usando SQLite, tu base de datos será un archivo en tu máquina; en ese caso, NAME debería ser un path absoluto, incluyendo el nombre del archivo de base de datos. Si no existiera, se creará automáticamente cuando se sincronice la base de datos por primera vez.
Si no estás usando SQLite, tendremos que añadir propiedades adicionales:
- USER
- PASSWORD
- HOST
Como podéis comprobar en la imagen, las propiedad siempre se ponen entre ». Así que para agregar las credenciales de seguridad y el host, se añaden despues de las existentes y ponemos:
'USER':'VALOR'
'PASSWORD':'VALOR'
'HOST':'VALOR'
Ya que estáis editando el fichero “settings.py”, podemos configurar “TIME_ZONE” a nuestra zona horaria.
También podremos dirigirnos a la etiqueta “INSTALLED_APPS”. En esta etiqueta encontraremos los nombres de todas las aplicaciones Django que están activadas en esta instancia Django. Las apps se pueden usar en múltiples proyectos, y podemos empaquetarlas y distribuirlas para poder utilizarlas en otros proyectos.
Por defecto, INSTALLED_APPS contiene las siguientes apps, todas provistas por Django:
- contrib.admin – El sitio de administración
- contrib.auth – Sistema de autenticación.
- contrib.contenttypes – Un framework para manejar los distintos tipos de contenido.
- contrib.sessions – Un framework que nos permite la utilización de sesiones.
- contrib.messages – Un framework de mensajes.
- contrib.staticfiles – Un framework para manejar los archivos estáticos.
Algunas de estas aplicaciones van a tener que utilizar la base de datos, por lo que necesitaremos crear las respectivas tablas antes de poder usarlas. Para ello ejecutaremos el siguiente comando:
$ python manage.py migrate
El comando “migrate” lo que hace es mirar la etiqueta INSTALLED_APPS y crea las tablas necesarias en la base de datos determinada por los parámetros que hemos puesto en la etiqueta “DATABASE” dentro de nuestro archivo “settings.py”. Irá mostrando un mensaje por cada migración que se aplica.
Las aplicaciones incluidas por defecto son las que “Django” ha determinado que se suelen utilizar, pero no siempre es así. Si la aplicación que vais a crear no necesita alguna se pueden comentar la línea o eliminarla de la etiqueta INSTALLED_APPS, eso si, hacerlo antes de ejecutar el comando “migrate” ya que así creará las tablas necesarias.
Esto es todo por hoy, como habéis podido ver hay mucha información que asimilar y preferimos ir poco a poco para contar con una buena base para después. Para todos los que se acaban de incorporar indicarles que tenemos un índice con todos los capítulos del curso, ya que nunca es tarde para empezar.