path()函数也可匹配包含正则的URL模式。
时间: 2024-03-27 20:37:24 浏览: 10
是的,`path()`函数可以匹配包含正则表达式的URL模式。Django 2.0及以上版本提供了一个名为`re_path()`的函数,用于匹配包含正则表达式的URL模式,而`path()`函数则可以匹配不包含正则表达式的URL模式。
`path()`函数的第一个参数是URL模式,可以包含静态文本和命名参数。如果需要在URL模式中使用正则表达式,可以将其放在命名参数的值中。例如:
```
from django.urls import path
from . import views
urlpatterns = [
path('articles/<int:year>/<int:month>/', views.month_archive),
]
```
在上面的示例中,URL模式包含了两个命名参数`year`和`month`,其值均为整数类型。这里没有使用正则表达式,而是使用了Django提供的`<int:year>`和`<int:month>`语法来表示整数类型的值。
如果需要使用更复杂的正则表达式,可以使用`re_path()`函数。例如:
```
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.month_archive),
]
```
在上面的示例中,使用了正则表达式`[0-9]{4}`和`[0-9]{2}`来匹配年份和月份,然后将其作为命名参数传递给视图函数。注意,这里使用了`re_path()`函数而不是`path()`函数。