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

Lista (CRUD) Desarrollo con el framework Django

Al trabajar en una aplicación web con Django, para permitir operaciones CRUD (Crear, Leer, Actualizar, Eliminar), lo primero es mostrar una lista de objetos. En este caso, trabajaremos con artículos y los mostraremos en una tabla o lista.

Veremos cómo hacerlo paso a paso: configuramos la URL, creamos la vista, diseñamos el template y luego veremos cómo funciona todo junto.


Agregar la URL

Para empezar, le decimos a Django qué dirección debe mostrar nuestra lista de artículos. Esto se hace en el archivo urls.py.

📁 Archivo: article/urls.py

from django.urls import path
from hexlet_django_blog.article.views import IndexView

urlpatterns = [
    path('', IndexView.as_view()),  # Ruta principal que muestra la vista IndexView
]

Estamos utilizando una clase llamada IndexView, que crearemos en el próximo paso. La función as_view() convierte la clase en algo que Django puede usar como una vista.


Crear la vista que devuelve la lista

Una vista en Django es básicamente una función (o clase) que recibe una solicitud (request), hace algo (como consultar una base de datos), y luego devuelve una respuesta, normalmente una página HTML.

📁 Archivo: article/views.py

from django.shortcuts import render        # Para devolver la respuesta con una plantilla
from django.views import View              # Vista basada en clase
from hexlet_django_blog.article.models import Article  # Importar el modelo Article

class IndexView(View):
    def get(self, request, *args, **kwargs):
        articles = Article.objects.all()[:15]  # Traemos los 15 primeros artículos
        return render(request, 'articles/index.html', context={
            'articles': articles,  # Enviamos los artículos al template
        })

¿Qué hace este código?

  • Article.objects.all()[:15]: estamos obteniendo los primeros 15 artículos de la base de datos.
  • render(...): muestra un archivo HTML que se llama index.html. También le pasamos información adicional usando un diccionario llamado context.

Crear la plantilla para mostrar los artículos

En este archivo HTML vamos a escribir cómo se ven los artículos en la página web.

📁 Archivo: templates/articles/index.html

{% extends "base.html" %}  <!-- Usamos una plantilla base común -->

{% block content %}
    <h1>Lista de artículos</h1>
    {% for article in articles %}
        <h2>{{ article.name }}</h2>  <!-- Título del artículo -->
        <div>{{ article.body|slice:":200" }}</div>  <!-- Primeras 200 letras del contenido -->
    {% endfor %}
{% endblock %}

¿Qué hace esta plantilla?

  • {% extends "base.html" %}: hereda una estructura base común que tiene cosas como el encabezado o el menú.
  • {% for article in articles %}: recorremos todos los artículos que llegaron en el contexto.
  • {{ article.name }}: se reemplaza con el nombre del artículo.
  • {{ article.body|slice:":200" }}: muestra solo los primeros 200 caracteres del cuerpo (body) del artículo, como un resumen.

¿Cómo se conectan todas las piezas?

Componente Qué hace
urls.py Dice qué vista ejecutar para una URL dada
views.py Obtiene los datos y renderiza la plantilla
models.py Define qué es un artículo (Article)
index.html Muestra los artículos al usuario

Resumen

  • Lo primero para mostrar información es definir una URL que se conecte con una vista.
  • La vista va al modelo y consigue los datos necesarios (en este caso, los artículos).
  • Los datos se envían al template (plantilla) usando un diccionario llamado context.
  • En el template, usamos etiquetas como {% for %} para recorrer listas y {{ }} para mostrar valores.
  • Limitamos el número de artículos a 15 y cortamos el texto a 200 caracteres para mostrar un resumen.

Trabajo independiente

Mostrar artículos y agregar menú

En esta actividad vas a asegurar la visualización de artículos y mejorar la navegación. Sigue estos pasos:

  1. Realiza todos los pasos de la teoría.
  2. Asegúrate de que al solicitar la página /articles, se muestren los artículos que creaste anteriormente.
  3. Agrega al diseño general un menú que tenga un enlace a articles.

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