Lor*_*nzo 3 python regex django
我已经过了这么多个小时了,我再也看不到我做错了什么:
url(r'^baz/([a-z0-9]+)/([a-z0-9]+)/[0-9]/$', 'foobar.views.baz')
def baz(request, xxx, yyy, zzz):
pass
Run Code Online (Sandbox Code Playgroud)
这是要求的实际URL:
http://localhost:8000/baz/75ca0f5bf13d67895e23419c25f82e87f3f5f95f/f733dbf686cd51f911e533d5a351f81394c9db5c/0/
Run Code Online (Sandbox Code Playgroud)
Django不断向我抛出这个错误:
baz() takes exactly 4 arguments (3 given)
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
你错过了正则表达式中的最后一块parens.
url(r'^baz/([a-z0-9]+)/([a-z0-9]+)/([0-9])/$', 'foobar.views.baz')
Run Code Online (Sandbox Code Playgroud)
随着parens Python将捕获[0-9]作为一个组,现在你将获得所有3个参数(+ self)而不是2.