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

标签 python django forms

我是 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/

相关文章:

python - 从嵌套列表的子列表中仅选择某些元素的更多 pythonic 方法

python - 如何在Django中给url添加参数?

python - 检查用户权限时 Django runserver 的空白响应

python - 测试不会在 Django 模型字段上引发 ValidationError

javascript - 基于浏览器的客户端表单填写

python - 根据另一个字段的值验证 Django 模型字段?

python - 如何从 django 表单 ImageField 输入中获取图像

python - 正在用 self 声明 [几乎] 一切。好吧(Python)?

python - 通过python脚本加载fixture.json

javascript函数将上传文件字段设置为默认值