Django

Django URLs

URLconf, namespaces, and named routes

Django URLs

URLconfs map paths to views. Use namespaces for app routes.

App URLs

# tasks/urls.py
from django.urls import path
from . import views

app_name = "tasks"

urlpatterns = [
    path("", views.task_list, name="task-list"),
    path("<int:pk>/", views.task_detail, name="task-detail"),
    path("<int:pk>/toggle/", views.task_toggle_done, name="task-toggle"),
]

Include in project

# config/urls.py
from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path("admin/", admin.site.urls),
    path("tasks/", include("tasks.urls")),
]

Reverse URLs

from django.urls import reverse
from django.shortcuts import redirect

return redirect(reverse("tasks:task-list"))
{% url 'tasks:task-detail' task.pk %}