Lección 5: Listado dinámico

El objetivo será mostrar los artículos que has añadido en el panel administrativo en la página principal.

Edita el archivo my_blog/views.py y sustituye todo el contenido con el siguiente código:

from django.shortcuts import render
from django.http import HttpResponse
from .models import Article # Nuevo

def hello_world(request):
    return HttpResponse('Hola, mundo!')

def article_list(request): # Nuevo
    articles = Article.objects.all() # Nuevo
    return render(request, 'article_list.html', {'articles': articles}) # Nuevo

Crea un archivo article_list.html en la carpeta my_blog/templates/ (deberás crearla) con el siguiente contenido:

<!DOCTYPE html>
<html>
<head>
    <title>Lista de artículos</title>
</head>
<body>
<h1>Lista de grandes mujeres en la historia de la informática</h1>

</body>
</html>

Y añade la nueva vista a las URLs de la aplicación en my_blog/urls.py:

from django.urls import path
from . import views

urlpatterns = [
    path('', views.article_list, name='article_list'),
        path('articles/', views.article_list, name='article_list'), # Nuevo
]

Ves a http://localhost:8000/articles/ y deberías ver los artículos que has añadido en el panel administrativo.

Un momento… ¿por qué no se ven las imágenes? En el siguiente apartado lo solucionaremos.

Mostrando imágenes

Todo el contenido que subamos a la base de datos se guardará en la carpeta media. Para que Django pueda servir estos archivos, necesitamos añadir las rutas a my_app/urls.py:

from django.contrib import admin
from django.urls import path, include
from django.conf import settings # Nuevo
from django.conf.urls.static import static # Nuevo

urlpatterns = [
    path('', include('my_blog.urls')),
    path('admin/', admin.site.urls),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) # Nuevo

Ahora ya deberías ver las imágenes en la página.

La estética no es muy bonita, ¡vamos a añadir un poco de CSS!

Esta obra está bajo una Licencia Creative Commons Atribución-NoComercial-SinDerivadas 4.0 Internacional.

Atribución/Reconocimiento-NoComercial-SinDerivados 4.0 Internacional

¿Me invitas a un café? ☕

Puedes hacerlo usando el terminal.

ssh customer@andros.dev -p 5555

Comentarios

{{ comments.length }} comentarios

Nuevo comentario

Nueva replica  {{ formatEllipsisAuthor(replyComment.author) }}

Acepto la política de Protección de Datos.

Escribe el primer comentario