У меня есть приложение web.py со следующим кодом сервера.GET() принимает ровно 2 аргумента (4 данных)
import web
import mod1
urls = (
'/(\w*)/(c|r|u|d)/(.*)', '\\1.\\2',
)
if __name__ == "__main__":
app = web.application(urls, globals())
app.run()
mod1.py
содержит
class c:
def POST(self):
return "C"
class d:
def DELETE(self):
return "d"
class u:
def POST(self):
return "u"
class r:
def GET(self, _id):
return "v={0}".format(_id)
Теперь запрос http://.../mod1/r/3
возвращается GET() takes exactly 2 arguments (4 given)
.
В чем проблема?
Но в [tutorial] (http://webpy.org/docs/0.3/tutorial) говорится: «' \ 1' заменяется первым захватом вашего регулярного выражения, любые ** оставшиеся ** захватывают get перешел к вашей функции ». –
[Эта страница] (http://webpy.org/cookbook/url_handling) не упоминает об этом, и, похоже, больше нет информации об этом. Чтобы быть откровенным, я сам не использую 'web.py'. Это может быть неправильный учебник. :-) –
@GenghisKhan: быстрое сканирование кода [делегирования] (https://github.com/webpy/webpy/blob/master/web/application.py#L430) не отображает такого удаления группы. Будет выглядеть немного дальше, но пока это похоже на то, что учебник ошибочен. –