如何理解django url.py中的url模式

时间:2012-04-18 04:53:07

标签: django django-urls url-pattern

如何理解例如的Url模式。 django url.py中的(?P<slug>[-\w]+)/$

4 个答案:

答案 0 :(得分:4)

此网址:(?P<slug>[-\w]+)/$

表示您将变量传递给名为slug的视图,可以是任意数字或字母-

你的观点是这样的:

def my_view(request, slug):
   ....
希望它有所帮助...

答案 1 :(得分:0)

答案 2 :(得分:0)

请注意,段塞字段也可能包含数字(不仅仅是字母和短划线),因此您需要将其更改为:

 SLUG = '(?P<slug>[\w\d-]+)'

我希望这对你有帮助......

答案 3 :(得分:0)

我认为这不是一个有效的正则表达式模式。 “[ - \ w] +”将获得“单词和 - ”,类似“a-b9-c-”或“---” (?P ...)是“命名组”。如果你不给它的名字,python(我的是2.7)会引起错误。

>>> m = re.match("(?P<e>[-\w]+)/$", "a-b-c-/")
>>> m.group('e')
'a-b-c-'
>>> m = re.match("(?P[-\w]+)/$", "a-b-c-/")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.7/re.py", line 137, in match
    return _compile(pattern, flags).match(string)
  File "/usr/lib/python2.7/re.py", line 244, in _compile
    raise error, v # invalid expression
sre_constants.error: unknown specifier: ?P[