Django-表单-(?P <pk> \ d +)/ $代表什么?

Shr*_*esh 2 python forms django

我是django的新手。我在在线教程的帮助下在Django中创建表单。我不理解urls.py文件中的一行。有人可以解释它的确切含义吗?

from django.conf.urls import url
from . import views
from . views import BlogListView, BlogDetailView, BlogCreateView

urlpatterns = [
    url(r'^$', views.BlogListView.as_view(), name='post_list'),
    url(r'^post/(?P<pk>\d+)/$', BlogDetailView.as_view(), name='post-detail'),
    url(r'^post/new/$', BlogCreateView.as_view(), name='post_new'),
    url(r'^post/(?P<pk>\d+)/edit/$', BlogUpdateView.as_view(), name='post_edit'),
]
Run Code Online (Sandbox Code Playgroud)

我不明白以下内容:

url(r'^post/(?P<pk>\d+)/$'
Run Code Online (Sandbox Code Playgroud)

什么(?P<pk>\d+)/$意味着什么?请帮忙

小智 5

这是一个正则表达式,与实际网址匹配

在这里r''指定字符串是原始字符串。'^'表示开始,$表示结束。

现在,“ pk”(在<>中时)代表主键。主键可以是任何东西,例如。它可以是字符串,数字等。主键用于区分表的不同列。

在这里写

<pk>\d+
Run Code Online (Sandbox Code Playgroud)

\ d匹配[0-9]和其他数字字符。

“ +”表示数字中必须至少包含1个或多个数字

所以,

... / posts / 1有效

... / posts / 1234有效

... / posts /无效,因为数字中必须至少包含1位数字

现在,此数字作为参数发送到BlogListView,并使用此主键运行所需的操作