Regístrate para acceder a más de 15 cursos gratuitos de programación con un simulador

Inicio rápido con Django Desarrollo con el framework Django

En esta lección vamos a empezar un proyecto simple con Django llamado hello-django. A medida que avancemos en el curso, iremos agregándole funcionalidades. Es muy importante que sigas los pasos tú mismo en tu computadora y, si quieres, puedes hacer tus propios experimentos con el código.

Si no tienes un entorno de programación listo, te recomendamos crear una carpeta para el proyecto y usar un manejador de dependencias. En Códica usamos uv , pero también puedes usar pip o poetry si ya estás familiarizado.

Instalar Django

Ya tenemos la carpeta del proyecto y el entorno virtual creado. El primer paso real es instalar Django, el framework que vamos a usar. También vamos a necesitar un servidor WSGI (como Gunicorn 🦄) que nos ayudará a ejecutar el proyecto en entornos reales (producción).

Si usas uv, puedes instalar los paquetes así:

uv pip install django
uv pip install gunicorn --dev

Aquí estamos instalando:

  • django, nuestra dependencia principal.
  • gunicorn, solo lo vamos a usar durante el desarrollo o pruebas, por eso usamos la opción --dev.

Después de esto, vas a tener disponibles dos comandos muy importantes:

Comando Qué hace
django-admin Herramienta para crear y administrar proyectos Django
gunicorn Servidor WSGI para ejecutar aplicaciones web (lo usamos al final del curso)

Para comprobar que Django está instalado correctamente, simplemente ejecuta:

uv run django-admin version

Y te debería salir algo así:

3.0.4

Nos sirve cualquier versión desde la 3.0.0 en adelante.

Crear la base del proyecto

Vamos a generar los archivos necesarios usando:

uv run django-admin startproject hello_django .

Algunas cosas importantes de esta línea:

  • hello_django será el nombre de nuestro paquete Python. En Python, se acostumbra usar guiones bajos (_) en vez de espacios.
  • El punto . al final indica que queremos generar los archivos en la carpeta actual (por eso creamos una carpeta vacía antes).

Si todo salió bien, deberías tener esta estructura:

.
├── hello_django
│   ├── __init__.py
│   ├── asgi.py
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
└── manage.py

¿Qué hace cada archivo?

Archivo Para qué sirve
manage.py Herramienta para ejecutar acciones del proyecto como runserver o migraciones
settings.py Todas las configuraciones del proyecto
urls.py Lista de rutas del sitio web
wsgi.py / asgi.py Puntos de inicio de la app cuando se ejecuta como WSGI o ASGI

En este curso nos vamos a enfocar en settings.py y urls.py, pero conocer el resto también es útil.

Nuestra primera vista y plantilla

Más adelante vamos a ver con calma cómo funciona toda la arquitectura de Django. Por ahora, vamos a enfocarnos en que nuestro servidor muestre una página HTML básica.

Paso 1: Configurar la ruta

Vamos a editar el archivo hello_django/urls.py. Primero, importamos nuestro nuevo archivo de vistas:

from hello_django import views

Luego, editamos la lista urlpatterns para que quede así:

from django.urls import path
from hello_django import views

urlpatterns = [
    path('', views.index),
    # path('admin/', admin.site.urls),
]

Esto significa que cuando alguien entre a la página principal (/), Django va a llamar a la función index del archivo views.py.

Paso 2: Crear el archivo de vistas

Creamos el archivo hello_django/views.py y escribimos:

from django.shortcuts import render

def index(request):
    return render(request, 'index.html', context={
        'who': 'World',
    })

Aquí usamos la función render() para:

  1. Buscar el archivo index.html.
  2. Enviarle datos a través del diccionario context, que luego podemos mostrar dentro del HTML.
El término render significa básicamente que Django toma un archivo HTML y le inserta los datos que le pasamos.

Paso 3: Agregar el template

Creamos una carpeta templates dentro de hello_django, y ahí dentro creamos el archivo index.html.

La estructura se verá así:

hello_django/
├── templates/
│   └── index.html

Ahora, escribimos este contenido en index.html:

<h1>Hello, {{ who }}!</h1>

El {{ who }} es una forma de “insertar” el valor del contexto. En este caso, mostrará "Hello, World!".

Paso 4: Informarle a Django dónde buscar templates

Para que Django sepa dónde encontrar esa carpeta templates, debemos agregar "hello_django" a la lista INSTALLED_APPS en el archivo settings.py.

Busca esta parte de settings.py:

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    ...
]

Y al final agrega:

INSTALLED_APPS = [
    ...
    'hello_django',
]

Con eso bastará por ahora para que Django tome en cuenta nuestros templates.

Ejecutar la aplicación

Django trae un servidor de desarrollo incorporado. Para iniciarlo, usamos:

uv run python manage.py runserver

Este servidor es muy útil durante el desarrollo por varias razones:

  • Se reinicia automáticamente si cambias algo en el código.
  • No guarda nada en caché (útil cuando editas archivos HTML, CSS o JS).
  • Es fácil de usar y rápido de iniciar.
Este servidor es solo para desarrollo. En producción se usa Gunicorn u otro servidor más robusto.

Ejecutando con Gunicorn

Cuando pases tu app a producción, probablemente usarás Gunicorn. Debes ejecutar:

export DJANGO_SETTINGS_MODULE=hello_django.settings
uv run gunicorn hello_django.wsgi

Aquí hacemos dos cosas:

  1. Indicamos con DJANGO_SETTINGS_MODULE qué archivo contiene las configuraciones del proyecto.
  2. Ejecutamos gunicorn, que iniciará la app a través del archivo wsgi.py.
Cuando usas manage.py, no necesitas definir esa variable de entorno, ya que el script la establece automáticamente por ti.

Resumen

  • Primero, creamos la carpeta y el entorno virtual; luego instalamos Django y Gunicorn.
  • Generamos un proyecto base con django-admin startproject.
  • Exploramos para qué sirven los archivos más importantes (settings.py, urls.py, etc.).
  • Creamos nuestra primera vista (views.index) que muestra una página HTML usando un template.
  • Los templates deben estar en una carpeta llamada templates dentro del paquete.
  • Django necesita saber dónde están los templates, agregamos el nombre del paquete a INSTALLED_APPS.
  • Usamos runserver durante el desarrollo, pero para producción usamos gunicorn.

Para acceder completo a curso necesitas un plan básico

El plan básico te dará acceso completo a todos los cursos, ejercicios y lecciones de Códica, proyectos y acceso de por vida a la teoría de las lecciones completadas. La suscripción se puede cancelar en cualquier momento.

Obtener acceso
130
cursos
1000
ejercicios
2000+
horas de teoría
3200
test

Obtén acceso

Cursos de programación para principiantes y desarrolladores experimentados. Comienza tu aprendizaje de forma gratuita

  • 130 cursos, 2000+ horas de teoría
  • 1000 ejercicios prácticos en el navegador
  • 360 000 estudiantes
Al enviar el formulario, aceptas el «Política de privacidad» y los términos de la «Oferta», y también aceptas los «Términos y condiciones de uso»

Nuestros graduados trabajan en empresas como:

Bookmate
Health Samurai
Dualboot
ABBYY