Funciones de django.urls para uso en URLconfs

path()

path(route, view, kwargs=None, name=None)

Devuelve un elemento para su inclusión en urlpatterns. Por ejemplo:

from django.urls import include, path

urlpatterns = [
    path("index/", views.index, name="main-view"),
    path("bio/<username>/", views.bio, name="bio"),
    path("articles/<slug:title>/", views.article, name="article-detail"),
    path("articles/<slug:title>/<int:section>/", views.section, name="article-section"),
    path("blog/", include("blog.urls")),
    ...,
]

route

El argumento route debe ser una cadena o gettext_lazy() (consulte Traducir patrones de URL) que contiene un patrón de URL. La cadena puede contener ángulos (como <username> arriba) para capturar parte de la URL y enviarla como argumento clave a la vista. Los ángulos pueden incluir una especificación del conversor (como el int en <int:section>) que limita los caracteres coincidentes y puede cambiar también el tipo de variable pasada a la vista. Por ejemplo, <int:section> coincide con una cadena de dígitos decimales y convierte el valor a un int.

Cuando se procesa una solicitud, Django comienza en el primer patrón de urlpatterns y avanza por la lista, comparando la URL solicitada contra cada patrón hasta encontrar uno que coincida. Consulte Cómo procesa Django una solicitud para obtener más detalles.

Los patrones no coinciden con los parámetros GET y POST o el nombre de dominio. Por ejemplo, en una solicitud a https://www.example.com/myapp/, la URLconf buscará myapp/. En una solicitud a https://www.example.com/myapp/?page=3, la URLconf también buscará myapp/.

view

El argumento view es una función de vista o el resultado de as_view() para vistas basadas en clase. También puede ser un django.urls.include().

Cuando Django encuentra un patrón coincidente, llama a la función de vista especificada con un objeto HttpRequest como primer argumento y cualquier valor «capturado» del camino como argumentos clave.

kwargs

El argumento kwargs permite pasar argumentos adicionales a la función o método de vista. Consulte Pasando opciones adicionales a las funciones de vistas para obtener un ejemplo.

nombre

Los textos traducidos son:

Consulte Naming URL patterns para saber por qué el argumento name es útil.

re_path()

re_path(route, view, kwargs=None, name=None)

Devuelve un elemento para su inclusión en urlpatterns. Por ejemplo:

from django.urls import include, re_path

urlpatterns = [
    re_path(r"^index/$", views.index, name="index"),
    re_path(r"^bio/(?P<username>\w+)/$", views.bio, name="bio"),
    re_path(r"^blog/", include("blog.urls")),
    ...,
]

El argumento route debe ser una cadena o gettext_lazy() (consulte Traducir patrones de URL) que contenga una expresión regular compatible con el módulo re de Python. Las cadenas suelen utilizar la sintaxis de cadena cruda (r'') para poder contener secuencias como \d sin necesidad de escapar el backslash con otro backslash. Cuando se produce una coincidencia, los grupos capturados de la expresión regular se pasan a la vista – como argumentos nombrados si los grupos están nombrados, y como argumentos posicionales en caso contrario. Los valores se pasan como cadenas, sin ninguna conversión de tipo.

Cuando un route termina con $, toda la URL solicitada, coincidente con path_info, debe coincidir con el patrón de expresión regular (re.fullmatch() se utiliza).

Los argumentos view, kwargs y name son los mismos que para path().

include()

include(module, namespace=None)[fuente]
include(pattern_list)
include((pattern_list, app_namespace), namespace=None)

Una función que toma un importador completo de Python a otro módulo de URLconf que debe ser «incluido» en este lugar. Opcionalmente, también se pueden especificar el namespace de aplicación y el namespace de instancia donde las entradas se incluirán.

Normalmente, el namespace de aplicación debería estar especificado por el módulo incluido. Si se establece un namespace de aplicación, el argumento namespace puede usarse para establecer un diferente namespace de instancia.

include() también acepta como argumento una secuencia iterable que devuelve patrones de URL o una tupla de 2 elementos que contenga tal secuencia más los nombres de los namespaces de aplicación.

Parámetros:
  • module – Módulo de configuración de URLs (o nombre del módulo)

  • namespace (str) – Espacio de nombres para las instancias de URL que se incluyen

  • pattern_list – Iterador de instancias de path() y/o re_path().

  • app_namespace (str) – Espacio de nombres de la aplicación para las entradas de URL que se incluyen

Consulte Incluir otros URLconfs y Nombres de espacio de URLs y URLconfs incluidos.

register_converter()

register_converter(converter, type_name)[fuente]

La función para registrar un conversor para su uso en la función path() routes.

El argumento converter es una clase de conversor, y type_name es el nombre del conversor que se utilizará en los patrones de ruta. Consulte Registro de convertidores de ruta personalizados para un ejemplo.

Obsoleto desde la versión 5.1: Sobreescribir conversores existentes está descontinuado.

Funciones de django.conf.urls para su uso en URLconfs

static()

static.static(prefix, view=django.views.static.serve, **kwargs)

Función auxiliar para devolver un patrón de URL para servir archivos en modo depuración:

from django.conf import settings
from django.conf.urls.static import static

urlpatterns = [
    # ... the rest of your URLconf goes here ...
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

handler400

handler400

Una función llamable, o una cadena que representa la ruta de importación completa del módulo Python al view que se debería llamar si el cliente HTTP ha enviado una solicitud que causó un error y una respuesta con un código de estado 400.

Por defecto, esta es django.views.defaults.bad_request(). Si implementas una vista personalizada, asegúrate de que acepte argumentos request y exception y devuelva un objeto HttpResponseBadRequest.

handler403

handler403

Una función llamable, o una cadena que representa la ruta de importación completa del módulo Python al view que se debería llamar si el usuario no tiene los permisos necesarios para acceder a un recurso.

Por defecto, esta es django.views.defaults.permission_denied(). Si implementas una vista personalizada, asegúrate de que acepte argumentos request y exception y devuelva un objeto HttpResponseForbidden.

handler404

handler404

Una función llamable, o una cadena que representa la ruta de importación completa del módulo Python al view que se debería llamar si ninguno de los patrones de URL coinciden.

Por defecto, esto es django.views.defaults.page_not_found(). Si implementas una vista personalizada, asegúrate de que acepte argumentos request y exception y devuelva un HttpResponseNotFound.

handler500

handler500

Una función llamable o una cadena representando el import path completo a la vista que se debería llamar en caso de errores del servidor. Los errores del servidor ocurren cuando tienes errores de tiempo de ejecución en el código de vistas.

Por defecto, esto es django.views.defaults.server_error(). Si implementas una vista personalizada, asegúrate de que acepte un argumento request y devuelva un HttpResponseServerError.