Primeros pasos con Django#
Este tutorial introduce el flujo básico para iniciar un proyecto con Django, desde la preparación del entorno hasta la definición de modelos con el ORM. El objetivo es construir una base sólida sobre la cual se desarrollarán aplicaciones web más complejas a lo largo del curso.
Note
Aunque se menciona Ubuntu 24.04, los ejemplos mostrados utilizan Ubuntu 22.04 (jammy). Los pasos son equivalentes para ambas versiones.
Entorno, proyecto y servidor de desarrollo#
En esta primera parte se prepara el entorno de trabajo, se instala Django y se crea un proyecto inicial. El enfoque debe estar en entender qué se está creando y por qué, no solo en teclear (o pegar) los comandos.
Verificar el sistema operativo#
Se asume que estamos trabajando en una instancia Linux (Ubuntu). Puedes verificar la versión con:
lsb_release -a
Crear un ambiente virtual#
Un ambiente virtual de Python permite aislar dependencias y versiones de librerías por proyecto. Esto evita conflictos y facilita reproducir el entorno en otros equipos o servidores.
Recomendaciones importantes:
Cada proyecto debe tener su propio ambiente virtual.
El ambiente virtual no debe versionarse (agregar a git).
Si vive dentro del repositorio, debe agregarse a
.gitignore.
En este ejemplo, el ambiente se crea en el directorio HOME y se llama
django-venv. Esto es para reutilizar el mismo ambiente en varios
proyectos que utilizan las mismas librerías. Otra opción es ponerlo en
el mismo directorio del proyecto.
python3 -m venv django-venv
Activar y desactivar el ambiente#
Desde HOME:
source django-venv/bin/activate
Para desactivarlo:
deactivate
Cuando el ambiente está activo, suele aparecer en el prompt:
(django-venv) ubuntu@ip:~$
Instalar Django#
Con el ambiente activado, instalamos Django usando pip:
pip install django
Para revisar las librerías instaladas:
pip freeze
Ejemplo de salida:
Django==4.2.6
asgiref==3.7.2
sqlparse==0.4.4
typing_extensions==4.8.0
Guardar dependencias#
Para documentar el entorno y poder reproducirlo más adelante, guarda las
dependencias en requirements.txt:
pip freeze > requirements.txt
Important
No es necesario reinstalar dependencias en este momento. Este archivo se
utilizará más adelante o en otros entornos. Al subir este proyecto a GitHub,
nos permite clonarlo en otra máqiuina y recrear el ambiente con el comando:
pip install -r requirements.txt.
Crear el proyecto Django#
Un proyecto en Django define la configuración global del sitio: ajustes, URLs principales, servidor WSGI/ASGI, etc.
Para crear un proyecto llamado mymovies:
django-admin startproject mymovies
Para inspeccionar la estructura del proyecto:
tree mymovies
Ejemplo:
mymovies/
├── manage.py
└── mymovies
├── settings.py
├── urls.py
├── asgi.py
└── wsgi.py
Configurar acceso remoto#
Si el proyecto se probará desde otra máquina o usando una IP pública, es necesario
agregar el host en ALLOWED_HOSTS dentro de settings.py:
ALLOWED_HOSTS = ["otro.host.com", "web.ddns.net"]
Ejecutar el servidor de desarrollo#
Django incluye un servidor de desarrollo integrado. Para aceptar conexiones externas:
python3 manage.py runserver 0.0.0.0:8000
Warning
El servidor de desarrollo no está diseñado para producción. Se utiliza únicamente con fines educativos y de desarrollo local.
Note
Recuerda conectarte por http://. El servidor de desarrollo de Django no
soporta HTTPS en este modo. Al acceder desde el navegador es posible que se
muestre un aviso indicando que la conexión no es segura o que el sitio no
utiliza cifrado. Esto es normal y esperado en un entorno de desarrollo, ya
que no se ha configurado un certificado SSL/TLS.
En un entorno de producción, el uso de HTTPS es obligatorio y se gestiona a través de servidores web o servicios externos (por ejemplo Nginx, Apache, balanceadores de carga o servicios en la nube).
En esta primera parte se logró:
Crear un ambiente virtual aislado.
Instalar Django.
Crear un proyecto base.
Ejecutar el servidor de desarrollo.