我有一个带有以下服务器代码的web.py应用程序。
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)
。
这里有什么问题?
答案 0 :(得分:5)
您的网址配置包含 3 参数((\w*)
,(c|r|u|d)
和(.*)
)。加上方法的self
参数,它产生4个参数。
调整GET
方法以接受所有参数:
def GET(self, param1, operation, id_):
这些匹配每个正则表达式捕获组;我猜到了每个参数的名称,你可以根据需要进行调整。