Back to Roadmap
6:00

Views & URL Routing in Django

Learn how Django handles requests using views and URL routing to build structured backend web applications

6 MIN READ VERIFIED CURRICULUM

In Django, Views and URL Routing work together to handle incoming web requests and return appropriate responses.

They form a core part of Django’s request-response cycle in backend development.

What are Views in Django?

A View is a Python function or class that handles a web request and returns a response.

It contains the business logic of the application and interacts with models and templates.

from django.http import HttpResponse

def home(request):
    return HttpResponse('Hello from Django View')
python

Types of Views

Django supports Function-Based Views (FBV) and Class-Based Views (CBV).

FBVs are simple functions, while CBVs provide more structure and reusability.

What is URL Routing?

URL routing maps URLs to their corresponding views in Django.

It acts as a bridge between the browser request and backend logic.

How URL Routing Works

When a user visits a URL, Django checks the URL patterns and calls the matching view.

If no match is found, Django returns a 404 error.

Creating URL Patterns

from django.urls import path
from . import views

urlpatterns = [
    path('', views.home),
]
python

Each path connects a URL route to a specific view function.

Adding Multiple Routes

urlpatterns = [
    path('', views.home),
    path('about/', views.about),
    path('contact/', views.contact),
]
python

Passing Data in Views

Views can return dynamic data based on logic or database queries.

def user_profile(request):
    return HttpResponse('User Profile Page')
python

URL Parameters

Django allows passing dynamic values through URLs.

path('user/<int:id>/', views.user_detail)
python

Handling URL Parameters in Views

def user_detail(request, id):
    return HttpResponse(f'User ID: {id}')
python

Query Parameters

Query parameters are used to pass data in the URL string.

/search/?q=django
text

Request Object

The request object contains metadata about the HTTP request.

It includes headers, method type, and user data.

Returning Different Responses

Views can return HTML, JSON, or plain text responses.

from django.http import JsonResponse

def api_view(request):
    return JsonResponse({'message': 'Hello API'})
python

Including URL Configurations

Large Django projects split URLs into multiple files for better organization.

from django.urls import include, path

urlpatterns = [
    path('blog/', include('blog.urls')),
]
python

Error Handling in Views

Views should handle errors like invalid data or missing records properly.

Django automatically handles 404 and 500 errors if not managed explicitly.

Best Practices

Keep views simple and move complex logic to separate services or models.

Use meaningful URL patterns and avoid overly complex routes.

Common Beginner Mistakes

Beginners often put too much logic inside views instead of separating concerns.

Another mistake is not organizing URLs properly in large applications.

Real-World Importance

Views and URL routing are essential for building structured Django applications and APIs.

They power the entire request handling system in backend web development.

Summary

Django Views handle logic while URL routing maps requests to the correct views.

Understanding both is essential for building functional Django backend systems.