✨ ¡Excelente momento para conectar! Estoy disponible para tu próximo proyecto. No más esperas ni complicaciones. Te ofrezco desarrollo ágil, comunicación clara y resultados que superan expectativas. Conversemos sobre cómo puedo impulsar tu idea.

Cómo Funcionan las Rutas en Django

Django utiliza un sistema basado en patrones para definir las rutas de las aplicaciones web. Estas rutas se configuran en archivos llamados urls.py y permiten enlazar las URLs con las vistas.

En Django, las rutas se definen en el archivo urls.py. La función principal utilizada es path, y opcionalmente, re_path para expresiones regulares.

Estructura de una ruta básica

python
from django.urls import path
from . import views

urlpatterns = [

  path('ruta/', views.mi_vista, name='nombre_de_la_ruta'),

]
  Definiciones

  • ruta/: Define el patrón de la URL.
  • views.mi_vista: Especifica la vista que se ejecutará cuando se acceda a esta URL.
  • name: Permite referenciar la ruta en plantillas o vistas.

Configurar URLs en una aplicación

  • Crea un archivo urls.py en tu aplicación (si no existe).
  • Define las rutas locales.
python
from django.urls import path
from . import views

urlpatterns = [

  path('', views.inicio, name='inicio'),
  path('about/', views.about, name='about'),

]

Incluye las rutas locales en el proyecto principal. En el archivo urls.py del proyecto:

python
from django.contrib import admin
from django.urls import path, include

urlpatterns = [
  path('admin/', admin.site.urls),
  path('', include('mi_app.urls')),
]

Ruta simple

python
urlpatterns = [
  path('saludo/', views.saludo, name='saludo'),
]

Vista en views.py

python
from django.http import HttpResponse

def saludo(request):

  return HttpResponse("¡Hola, Mundo!")

Ruta con parámetros

python
urlpatterns = [
  path('saludo/<str:nombre>/', views.saludo_personalizado, name='saludo_personalizado'),
]

Vista en views.py

python
def saludo_personalizado(request, nombre):

  return HttpResponse(f"¡Hola, {nombre}!")

Ruta con expresiones regulares

Usando re_path:

python
from django.urls import re_path

urlpatterns = [

  re_path(r'^numero/(?P<numero>[0-9]+)/$', views.mostrar_numero, name='mostrar_numero'),
]

Vista en views.py

python
def mostrar_numero(request, numero):

  return HttpResponse(f"El número es: {numero}")

Rutas agrupadas

Cuando tienes varias rutas relacionadas:

python
urlpatterns = [

  path('blog/', views.blog_list, name='blog_list'),

  path('blog/<int:id>/', views.blog_detail, name='blog_detail'),

]

Vistas en views.py

python
def blog_list(request):
  return HttpResponse("Lista de publicaciones.")

def blog_detail(request, id):
  return HttpResponse(f"Detalles de la publicación con ID: {id}")

Uso de path y re_path

  • path: Usa rutas legibles y simples.
  • re_path: Utiliza expresiones regulares para patrones avanzados.

Ejemplo combinado:

python
from django.urls import path, re_path

urlpatterns = [

  path('simple/', views.simple, name='simple'),

  re_path(r'^regex/(?P<slug>[-w]+)/$', views.regex_example, name='regex_example'),

]