0Pricing
Python Academy · Lección

Vistas y URL

Dirija las solicitudes a las vistas

Vistas y URL es una lección gratuita de Python Academy en CoddyKit. Esta es la lección 3 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Python Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Python Academy incluye 4 lecciones en total.

¿Qué es una vista?

Una vista de Django es una función (o clase) que recibe una solicitud web y devuelve una respuesta web. Las vistas contienen la lógica de sus páginas y se encuentran en el views.py de una app.

from django.http import HttpResponse

def home(request):
    return HttpResponse('Hello, world!')
print('A view takes request, returns response')

El argumento request

Toda vista recibe un objeto request que contiene información sobre la solicitud entrante: el método, los datos GET/POST, el usuario y mucho más.

from django.http import HttpResponse

def info(request):
    return HttpResponse('Method: ' + request.method)
print('request carries the incoming data')

Patrones de URL

El urls.py de una app asigna rutas URL a vistas mediante una lista llamada urlpatterns y la función path().

# blog/urls.py
from django.urls import path
from . import views

urlpatterns = [
    path('', views.home),
]
print('path maps a URL to a view')

Cómo nombrar URLs

Asigne un name a un patrón para poder referirse a él en otros lugares sin escribir la ruta directamente.

from django.urls import path
from . import views

urlpatterns = [
    path('', views.home, name='home'),
]
print("name='home' lets you reference it later")

Parámetros de URL

Capture partes de la URL con convertidores como <int:post_id>. El valor capturado se pasa a la vista.

from django.urls import path
from . import views

urlpatterns = [
    path('post/<int:post_id>/', views.detail, name='detail'),
]
print('post/5/ -> detail(request, post_id=5)')

Cómo leer el parámetro

El valor capturado llega como un argumento de palabra clave cuyo nombre coincide con el del convertidor.

from django.http import HttpResponse

def detail(request, post_id):
    return HttpResponse('Post ' + str(post_id))
print('View receives post_id')

Cómo incluir las URLs de una app

El urls.py raíz del proyecto incorpora las URLs de cada app mediante include(), lo que mantiene modular el enrutamiento.

# mysite/urls.py
from django.urls import path, include

urlpatterns = [
    path('blog/', include('blog.urls')),
]
print('include() wires up app urls')

Cómo renderizar plantillas

El atajo render() combina una plantilla con un diccionario de contexto y devuelve un HttpResponse.

from django.shortcuts import render

def home(request):
    return render(request, 'home.html', {'name': 'Alice'})
print('render combines template + context')

Atajos para 404

get_object_or_404() obtiene un objeto o genera un error 404 si no existe; es un patrón habitual y seguro.

from django.shortcuts import get_object_or_404, render
from .models import Post

def detail(request, post_id):
    post = get_object_or_404(Post, id=post_id)
    return render(request, 'detail.html', {'post': post})
print('get_object_or_404 handles missing data')

Cómo invertir URLs

En Python, reverse('detail', args=[5]) construye una URL a partir del nombre de un patrón. En las plantillas, la etiqueta {% url %} hace lo mismo.

from django.urls import reverse
# reverse('detail', args=[5]) -> '/blog/post/5/'
# In a template: {% url 'detail' post.id %}
print('reverse builds URLs from names')

Vistas basadas en clases

Django también ofrece vistas basadas en clases, como ListView y DetailView, que gestionan patrones habituales con menos código.

from django.views.generic import ListView
from .models import Post

class PostList(ListView):
    model = Post
print('ListView lists objects automatically')

Comprobación rápida

Ponga a prueba sus conocimientos sobre vistas y URLs.

Resumen

Ha dirigido las solicitudes a las vistas.

  • Las vistas reciben un request y devuelven una respuesta
  • urlpatterns + path() asignan URLs a vistas, opcionalmente con un name
  • Los convertidores como <int:id> capturan partes de la URL
  • include() conecta las URLs de las apps; render() y get_object_or_404() son atajos útiles

Preguntas frecuentes

¿La lección «Vistas y URL» es gratis?

Sí — el texto completo de «Vistas y URL» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Python Academy, actualiza a CoddyKit PRO. El curso de Python Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Vistas y URL»?

Dirija las solicitudes a las vistas Practicas Python Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Python Academy?

No se requiere experiencia previa. Python Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 4.

¿Cuánto tiempo toma la lección «Vistas y URL»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Python Academy?

Sí. Cada lección de Python Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Proyectos y aplicaciones
  2. Modelos y migraciones
  3. Vistas y URL
  4. El administrador de Django
← Volver a Python Academy