url 模式中的问号

Question mark in url pattern

Django 1.11.2

我需要一个 url 模式用于两种情况:

  1. /博客/
  2. /博客/.json/

因此,如果是 json,我将使用 application/json 内容类型进行响应。

这个URL模式似乎可以接受:

url(r'^blog/?(?P<json>\.json)?/$', BlogFront.as_view()),

至少,它有效。问题是看不懂。

最后一个?是匹配前面 RE 的 0 次或 1 次重复。没关系。 这 ?中间是关于捕获一个符号组。

第一个问号呢?这对我来说是个谜。你能评论一下这是什么意思吗?

第一个问号只是使前面的 / 成为可选的,使 /blog.json/ 有效。根据你的问题,这不是你想要的,所以可能值得删除它