GET()只需要2个参数(给出4个参数)

时间:2013-06-02 09:46:41

标签: python rest web.py

我有一个带有以下服务器代码的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)

这里有什么问题?

1 个答案:

答案 0 :(得分:5)

您的网址配置包含 3 参数((\w*)(c|r|u|d)(.*))。加上方法的self参数,它产生4个参数。

调整GET方法以接受所有参数:

def GET(self, param1, operation, id_):

这些匹配每个正则表达式捕获组;我猜到了每个参数的名称,你可以根据需要进行调整。