在Django中,如果要通过url将参数传递给视图,有两种路由配置方式。如下两种方式等效:
urlpatterns = [
path('article/<int:id>/', views.article_detail, name = 'article_detail'),
re_path(r'^article/(?P<id>\d+)/$', views.article_detail, name='article_detail'),
]
都可以匹配:http://.../article/3/
。其中的(?P<id>\d+)
作何理解?
这是一个命名组,将\d+
匹配到的数字记录到名字为id
的这个命名组中。
参考:Named Capturing Groups and Backreferences
What does P mean in /(?P<topic_id>\d+)$