我是 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'),
]
我不明白下面一行:
url(r'^post/(?P<pk>\d+)/$'
什么是(?P<pk>\d+)/$
表示?
请帮忙
最佳答案
它是一个正则表达式,与实际的 URL 匹配
这里的 r'' 指定字符串是原始字符串。 '^' 表示开始,$ 表示结束。
现在 'pk'(在 <> 内)代表主键。主键可以是任何东西,例如。可以是字符串、数字等。主键用于区分表的不同列。
这里写着
<pk>\d+
\d匹配[0-9]等数字字符。
'+'表示数字中必须至少有一位或多位数字
所以,
.../posts/1 is valid
.../posts/1234 is valid
.../posts/ is not valid since there must be at least 1 digit in the number
现在这个数字作为参数发送给 BlogListView,你可以用这个主键运行你想要的操作
关于python - Django - 表单 - (?P<pk>\d+)/$ 表示什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47246068/