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