在Django中,URL路由規則用於將請求的URL映射到相應的視圖函數或類。Django使用正則表達式來匹配URL模式,並從請求中提取參數,並將其傳遞給視圖函數或類。
以下是一些常見的URL路由規則:
- 普通字符串匹配:這種匹配只會匹配與規則完全相同的URL,例如:
from django.urls import path
from . import views
urlpatterns = [
path('home/', views.home),
]
- 帶變量的動態路徑匹配:這種匹配可以從URL中提取變量,並將其作爲參數傳遞給視圖函數或類,例如:
from django.urls import path
from . import views
urlpatterns = [
path('post/<int:pk>/', views.post_detail),
]
在上述例子中,<int:pk>
表示一個整數類型的變量,它將被提取並傳遞給視圖函數或類。
- 正則表達式匹配:這種匹配可以使用正則表達式來匹配複雜的URL模式,例如:
from django.urls import re_path
from . import views
urlpatterns = [
re_path(r'^articles/(?P<year>[0-9]{4})/(?P<month>[0-9]{2})/$', views.article_archive),
]
在上述例子中,(?P<year>[0-9]{4})
和(?P<month>[0-9]{2})
是具有命名捕獲組的正則表達式,它們將提取URL中的年份和月份,並將它們作爲參數傳遞給視圖函數。
- 包含其他URL配置:這種匹配可以在一個URL配置中包含另一個URL配置,例如:
from django.urls import include, path
from . import views
urlpatterns = [
path('blog/', include('blog.urls')),
]
在上述例子中,include('blog.urls')
將引入一個名爲blog
的應用程序,並使用該應用程序的URL配置來處理所有以/blog/
開頭的請求。
以上是一些常見的Django URL路由規則。通過使用這些規則,我們可以輕鬆地將請求的URL映射到相應的視圖函數或類,並從URL中提取必要的參數。