requisitos previos:
En Django, las vistas son funciones de Python que toman una solicitud de URL como parámetro y devuelven una respuesta HTTP o generan una excepción como 404. Cada vista debe asignarse a un patrón de URL correspondiente. Esto se hace a través de un módulo de Python llamado URLConf (configuración de URL)
Deje que el nombre del proyecto sea myProject. El módulo de Python que se usará como URLConf es el valor de ROOT_URLCONF
en myProject/settings.py
. De forma predeterminada, esto está establecido en 'myProject.urls'
. Cada módulo de URLConf debe contener una variable urlpatterns
que es un conjunto de patrones de URL que se compararán con la URL solicitada. Estos patrones se verificarán en secuencia, hasta que se encuentre la primera coincidencia. Luego se invoca la vista correspondiente a la primera coincidencia. Si no coincide ningún patrón de URL, Django invoca una vista de manejo de errores apropiada.
Incluyendo otros módulos URLConf
Es una buena práctica tener un módulo URLConf para cada aplicación en Django. Este módulo debe incluirse en el módulo URLConf raíz de la siguiente manera:
from django.contrib import admin from django.urls import path, include urlpatterns = [ path('admin/', admin.site.urls), path('', include('books.urls')), ]
Esto le dice a Django que busque patrones de URL en el archivo books/urls.py
.
patrones de URL
Aquí hay un código de muestra para books/urls.py:
from django.urls import path from . import views urlpatterns = [ path('books/<int:pk>/', views.book_detail), path('books/<str:genre>/', views.books_by_genre), path('books/', views.book_index), ]
Por ejemplo,
- Una solicitud de URL a /books/crime/ coincidirá con el segundo patrón de URL. Como resultado, Django llamará a la función
views.books_by_genre(request, genre = "crime")
. - De manera similar, una solicitud de URL /books/25/ coincidirá con el primer patrón de URL y Django llamará a la función
views.book_detail(request, pk =25)
.
Aquí, int
y str
son convertidores de ruta y capturan un valor entero y de string respectivamente.
Conversores de ruta:
los siguientes tipos de convertidores de ruta están disponibles en Django
- int : coincide con cero o cualquier número entero positivo.
- str : coincide con cualquier string que no esté vacía, excepto el separador de ruta (‘/’).
- slug : coincide con cualquier string de slug, es decir, una string que consta de letras, dígitos, guiones y guiones bajos.
- ruta : coincide con cualquier string no vacía, incluido el separador de ruta (‘/’)
- uuid : coincide con un UUID (identificador único universal).
Publicación traducida automáticamente
Artículo escrito por Abhishek De y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA