Introducción a Django

¿Qué es Django?

Django es un framework de desarrollo web para el lenguaje Python. Permite crear aplicaciones web completas de manera rápida, segura y estructurada, siguiendo el patrón de diseño Modelo–Vista–Controlador (MVC), que en Django se denomina Modelo–Vista–Template (MVT).

Algunas características destacadas:

  • Incluye un servidor de desarrollo integrado.
  • Proporciona un sistema de plantillas para generar páginas HTML dinámicas.
  • Permite interactuar con bases de datos mediante un ORM (Object Relational Mapper).
  • Dispone de un panel de administración web listo para usar.
  • Incluye herramientas de seguridad (autenticación, CSRF, inyección SQL, etc.).

Entorno virtual y dependencias

Cada proyecto Django necesita un entorno virtual que aísle sus librerías del resto del sistema. Esto evita conflictos entre versiones de dependencias y permite que cada aplicación tenga su propio conjunto de paquetes.

:::caution[Ejercicio]

  1. Crea un folk del repositorio de la aplicación escrita en Django Gustbook: https://github.com/josedom24/guestbook_django.
  2. Clona tu repositorio en tu equipo.
  3. Crea un entorno virtual python que se llame guestbook y actívalo.
  4. Instala las dependencias de la aplicación que se encuentran en el fichero requirements.txt. :::

Creación de la base de datos

Antes de probar nuestra aplicación tenemos que crear las tablas necesarias en la base de datos SQlite que utiliza la aplicación. Para crear las tablas necesarias, ejecuta:

python3 manage.py migrate

Servidor de desarrollo

Para probar la aplicación, Django ofrece un servidor de desarrollo que permite ejecutar el proyecto localmente.

Se arranca con:

python3 manage.py runserver

y, por defecto, estará disponible en http://localhost:8000.

Este servidor detecta cambios automáticamente y se reinicia, por lo que resulta ideal para fase de desarrollo. No debe usarse en producción.

:::caution[Ejercicio]

  1. Crea las tablas en la base de datos SQlite.
  2. Comprueba que se ha creado la base de datos, es decir, comprueba que se ha creado un fichero llamado db.sqlite3.
  3. Ejecuta el servidor web de desarrollo.
  4. Accede a la página desde el navegador web.
  5. Escribe algún mensaje en la aplicación. :::

Panel de administración de Django

Una de las grandes ventajas del framework es el panel de administración que incluye por defecto. Permite gestionar el contenido de la base de datos desde una interfaz web, sin escribir código HTML ni SQL.

Para acceder a la zona de administración necesitamos crear un usuario privilegiado en nuestra aplicación para ello:

python3 manage.py createsuperuser

Para acceder usamos la ruta http://localhost:8000/admin/.

:::caution[Ejercicio]

  1. Crea un usuario con privilegios para la aplicación.
  2. Accede a la zona de administración usando el usuario que has creado.
  3. Accede a la tabla donde se guarda los mensajes de la aplicación y comprueba que está el mensaje que has guardado. :::