Trying Django, part 2

django

Second part of Trying Django, a Python framework for web development. Here you have part 1, where we created a virtual environment and also downloaded the django package.

Because you need to activate the environment several times while developing, I have created a script file under MS-DOS to make this task easy. This is the script code running: :

django-version

django-version

Si por casualidad has instalado o tienes instalada django, pero no te acuerdas de la versión, sólo tienes que escribir python -m django –version para ver qué versión tienes instalada, tal cual aparece en la imagen anterior.

Por último, vamos a modificar el nombre del proyecto (en nuestro caso probardjango) por src:

cambiar-src-django

cambiar-src-django

Por último, el script de arranque .bat queda así:

cd django
.\scripts\activate

Explorando el proyecto de Django

En la primera parte generamos el proyecto de django llamado probardjango, pero vamos a ver todo lo que se ha generado en el directorio src.

django-proyecto

django-proyecto

manage.py es una utilidad que se usa desde el modo de comandos, tal y cómo vimos en el primer paso, que incluye un monton de funciones para ayudar en el desarrollo de los proyectos. Conforme vayamos dando pasos, se irán utilizando varias de la utilidades.

El directorio probardjango es donde se encuentra el proyecto, y que es un paquete de Python que podrá ser llamado en tu proyecto. Ya lo iremos viendo también conforme avancemos.

Por último, tenemos db.sqlite3 que es la base de datos sqlite creada para nuestro proyecto. De momento, está casi vacia:

django-db-sqlite

django-db-sqlite

Bases de datos en Django

Quizás, la primera gran diferencia entre Flask y Django es que en Django necesitamos poner en marcha una base de datos casi antes de arrancar el proyecto. En realidad, Django está pensado para aplicaciones que requieran de datos de bases de datos, y claro, hay unas cuantas herramientas para facilitar muchas tareas rutinarias (de manage.py).

La primera de todas es makemigrations, donde se actualizan todas las funciones relacionadas con las bases de datos. Cómo estamos iniciando, no hay cambios.

django-makemigrations

django-makemigrations

En realidad, el comando anterior genera un paquete con los cambios, pero para ejecutarlos en la base de datos, hay que llamar a otro comando: migrate.

django-migrate

django-migrate

Ahora ya tenemos la base de datos, con nuevas tablas y unos cuantos índices generados.

django-db-migrate

django-db-migrate

Por los nombres de las tablas, podeis adivinar que se han generado una serie de tablas preparadas para la gestión de los usuarios, sesiones, etc, etc, …

El backend de Django

De igual forma que en la primera parte hemos accedido a poner en marcha el servidor, también hay un backend generado, pero para acceder, es necesario crear un usuario superadministrador. De nuevo, requerimos hacer uso de manage.py para su creación, y completamos los datos que nos pide: nombre de usuario, clave y email (aunque luego podremos cambiarlo, por supuesto).

django-createsuperuser

django-createsuperuser

Haciendo esto, ya tenemos al menos un usuario para acceder al backend de la aplicación, cuya URL es /admin:

djando-admin-credentials

djando-admin-credentials

Y accedemos con el usuario:

django-backend

django-backend

Y desde aquí se puede gestionar usuarios, permisos, grupos de usuarios, …. y una larga lista de tareas.

Nos vemos en probar django, parte 3.