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

Aplicaciones Desarrollo con el framework Django

Al principio, trabajar con Django parece fácil: tienes tu archivo views.py con algunas vistas y tu archivo urls.py con unas rutas. Pero a medida que el proyecto crece, todo se complica. ¿La solución? La descomposición, o separar el código en partes más pequeñas.

En Django, esto es más sencillo gracias a las aplicaciones o apps, que el propio framework nos facilita para organizar mejor el código.


¿Qué es una aplicación en Django?

La aplicación en Django es como un mini-proyecto dentro de tu proyecto general. Tiene sus propios archivos de modelos (models.py), vistas (views.py), URLs, plantillas y más.

Esto te ayuda a:

  • Separar distintas funcionalidades del sitio
  • Reutilizar partes de código en diferentes proyectos
  • Evitar el caos cuando tienes muchas vistas o reglas de enrutamiento

Django mismo viene con aplicaciones incluidas —como auth o admin— que puedes usar directamente como bloques reutilizables.


¿Dónde estamos parados?

Hasta el momento, tenemos un proyecto llamado codica_django_blog. Django puede arrancar sin aplicaciones personalizadas, pero ya lo convertimos en una app cuando la agregamos en settings.INSTALLED_APPS.

Ahora vamos a crear una segunda aplicación para organizar las funcionalidades relacionadas con artículos.


Paso a paso: Crear una nueva aplicación

  1. Abre tu terminal
  2. Ubícate dentro del directorio del proyecto (donde está el manage.py)
  3. Ejecuta:

django-admin startapp article

Esto generará una nueva carpeta con estructura similar a esta:

codica_django_blog/article
├── admin.py
├── apps.py
├── __init__.py
├── migrations/
│   └── __init__.py
├── models.py
├── tests.py
└── views.py

Por ahora solo nos centraremos en views.py y en configurar la app. Lo demás (models, migrations, tests) lo exploraremos más adelante.


Conectemos la aplicación al proyecto

Ahora vamos a decirle a Django que esta nueva app existe:

1️⃣ Abre codica_django_blog/article/apps.py

2️⃣ Modifica la clase ArticleConfig para que incluya el nombre completo del paquete:

# codica_django_blog/article/apps.py
class ArticleConfig(AppConfig):
    default_auto_field = 'django.db.models.BigAutoField'
    name = 'codica_django_blog.article'  # <- nombre completo

3️⃣ Luego, en codica_django_blog/settings.py, agrega la nueva app al listado de aplicaciones instaladas:

INSTALLED_APPS = [
    ...
    'codica_django_blog',
    'codica_django_blog.article',  # <- nueva app
]

Ya con eso, Django reconoce nuestra aplicación.


¿Y las rutas? Agreguemos un urls.py en la app

Django no crea automáticamente un archivo urls.py dentro de la app, pero es buena práctica hacerlo si la aplicación va a tener varias rutas.

  1. Crea el archivo en codica_django_blog/article/urls.py
  2. Agrega lo siguiente:
# codica_django_blog/article/urls.py
from django.urls import path
from codica_django_blog.article import views

urlpatterns = [
    path('', views.index),  # Cuando accedan a /articles/
]

Aquí estamos asociando el path vacío ('') con la vista index. Más adelante podrás agregar más rutas.


Integramos las rutas de la app en el proyecto

Vamos ahora a conectar este nuevo archivo de rutas con las rutas del proyecto principal.

  1. Abre codica_django_blog/urls.py
  2. Modifica el archivo para que se vea así:
# codica_django_blog/urls.py
from django.contrib import admin
from django.urls import path, include
from codica_django_blog import views

urlpatterns = [
    path('', views.index),
    path('articles/', include('codica_django_blog.article.urls')),  # <- nueva línea
    path('admin/', admin.site.urls),
]

¿Qué acabamos de hacer?

Cada vez que un usuario entre a localhost:8000/articles/, Django va a redirigir la petición a las rutas definidas en codica_django_blog.article.urls.

Esto permite que una aplicación sea completamente autónoma, sin conflicto con las rutas principales del proyecto o de otras aplicaciones. Es muy útil cuando quieres reutilizar esa app en otros proyectos.


Creamos la vista de ejemplo

Finalmente, vamos a crear la vista index que devolvemos cuando se accede a /articles/:

# codica_django_blog/article/views.py
from django.http import HttpResponse

def index(request):
    return HttpResponse('article')  # Respuesta básica

Con esto, si abres el navegador y visitas:

http://localhost:8000/articles/

Vas a ver en pantalla el texto:

article

Por ahora estamos devolviendo texto simple con HttpResponse. Más adelante veremos cómo usar plantillas HTML. Django también incluye otras respuestas como:

Tipo de respuesta ¿Para qué sirve?
HttpResponse Texto plano o HTML
JsonResponse Datos en formato JSON
FileResponse Responder con archivos (PDFs, imágenes, etc.)

Resumen

  • Cuando tu proyecto Django crece, es mejor dividirlo en varias aplicaciones para organizar el código.
  • Cada app funciona de manera independiente: puede tener sus propias vistas, URLs, modelos, plantillas, etc.
  • Para que Django reconozca una app, debes:
    • Asegurarte que apps.py tenga el nombre completo del paquete
    • Agregarla a settings.INSTALLED_APPS
  • Una buena práctica es que cada app tenga su propio archivo urls.py
  • Usamos include() en el archivo de rutas principal para conectar las rutas de la app
  • Creas una vista simple index que responde con texto para /articles/

Trabajo independiente

Crea y asegura tu aplicación

En esta actividad vamos a crear una aplicación en tu proyecto Django y asegurar su funcionalidad. Sigue estos pasos:

  1. Crea la aplicación codica_django_blog.article.
  2. Asegura la vista del ejercicio.
  3. Sube los cambios a Git con los comandos git add, git commit y git push.

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