在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中提取必要的参数。