A web application consists of multiple pages and each page has its own route. A route can be defined as a
Django lets us route URLs however we want and with no framework limitations. In this shot, we will see how we can create our own URL in Django.
As we can see, the user enters a URL in the search bar of the web browser. Then, that URL is passed to the
url.py file where it tries to find a matching URL pattern. If a matching URL is found, the corresponding view function attached with that URL is invoked. Otherwise, it returns
The routes are defined in the
url.py file that can be either at the project or application level. We will focus on creating our route at the project level.
To create a route in Django, we will use the
path() function that accepts two parameters: a
URL and a
url.pyfile looks like this:
from django.contrib import admin from django.urls import path urlpatterns = [ path('admin/', admin.site.urls), ]
All the routes are created inside the
Simply add a new path as below and a new route will be created.
from django.contrib import admin from django.urls import path from . import views urlpatterns = [ path('admin/', admin.site.urls), path('about/', views.about), ]
With this, the
about path will become a possible extension to the website’s URL. Assuming we’re using localhost and a port of
8000, it would be
127.0.0.1:8000/about/ to access this new URL.
When this new URL is entered in the browser, it will check for a matching route. In this case, it will invoke the
about method from
views.py file may look something like this:
from django.shortcuts import render from django.http import HttpResponse def about(request): return HttpResponse('<h1>This is about me!.</h1>')
Note: We can also create nested routes or even hundreds of routes all into this single
The steps above give a brief explanation of how URL routing works in Django. It is quite easy, provided that we know its structure and the flow of events that occur when a specific URL is to be accessed.
View all Courses