Django
Django URLs
URL routing
Django URLs
URL routing in Django is done through URLconf (URL configuration). Django uses URL patterns to map URLs to views.
Project URLs
The main URL configuration is in the project's urls.py:
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('myapp/', include('myapp.urls')),
]
App URLs
Create a urls.py file in your app:
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
path('about/', views.about, name='about'),
]
URL Patterns
URL patterns can include parameters:
urlpatterns = [
path('articles/<int:year>/', views.year_archive),
path('articles/<int:year>/<int:month>/', views.month_archive),
path('articles/<int:year>/<int:month>/<slug:slug>/', views.article_detail),
]
Named URLs
Give your URLs names for easy reference:
urlpatterns = [
path('', views.index, name='index'),
path('about/', views.about, name='about'),
]
Use them in templates:
<a href="{% url 'index' %}">Home</a>
<a href="{% url 'about' %}">About</a>
URL Parameters
Access URL parameters in your views:
def article_detail(request, year, month, slug):
# Use year, month, and slug here
return HttpResponse(f"Article: {slug} from {year}/{month}")