Django URL patterns | Python (original) (raw)

Last Updated : 19 Jul, 2019

Prerequisites: Views in Django

In Django, views are Python functions which take a URL request as parameter and return an HTTP response or throw an exception like 404. Each view needs to be mapped to a corresponding URL pattern. This is done via a Python module called URLConf(URL configuration)

Let the project name be myProject. The Python module to be used as URLConf is the value of ROOT_URLCONF in **myProject/settings.py**. By default this is set to 'myProject.urls'. Every URLConf module must contain a variable urlpatterns which is a set of URL patterns to be matched against the requested URL. These patterns will be checked in sequence, until the first match is found. Then the view corresponding to the first match is invoked. If no URL pattern matches, Django invokes an appropriate error handling view.

Including other URLConf modules
It is a good practice to have a URLConf module for every app in Django. This module needs to be included in the root URLConf module as follows:

from django.contrib import admin

from django.urls import path, include

urlpatterns = [

`` path( 'admin/' , admin.site.urls),

`` path(' ', include(' books.urls')),

]

This tells Django to search for URL patterns in the file **books/urls.py**.

URL patterns

Here’s a sample code for 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),

]

For example,

Here, int and str are path convertors and capture an integer and string value respectively.

Path convertors:
The following path convertor types are available in Django

Similar Reads

Django Basics








Django view





Django Model







Django Forms







Django URLS






More topics on Django