django的url正则表达式如何工作

时间:2012-04-19 05:56:17

标签: python regex django

在以下网址中:

(r'^videos/view/(?P<video_id>[^/]+)/$'
  • r'是什么意思/做什么?
  • ?P是什么意思/做什么?
  • 正则表达式<video_id>是如何逃脱的?

换句话说,上述内容有何不同:

'^/videos/view/[^/]+/$'

1 个答案:

答案 0 :(得分:5)

r''标记一个原始字符串,因此您不必双重转义反斜杠。在这种情况下,没有必要,因为没有,但很多人总是为正则表达式做这件事。

(?P<video_id>[^/]+)是正则表达式的Python扩展,它可以“命名”捕获组video_id。在Django中,这意味着匹配作为关键字参数video_id发送到视图;如果你做view/([^/]+)/$,它将作为第一个位置参数发送。但是,在你的例子中,根本就没有parens,这意味着视图不会得到任何参数!