我正在尝试用python编写RESTful Web服务。 但是当尝试在Cherrypy网站上给出的教程时,我最终遇到了类似的错误
Traceback (most recent call last):
File "rest.py", line 35, in <module>
cherrypy.quickstart(StringGeneratorWebService(), '/', conf)
TypeError: expose_() takes exactly 1 argument (0 given)
其中rest.py是我的文件,其中包含站点上完全相同的代码,并带有副标题“给我们REST”。
我很清楚,很明显从错误消息中,我缺少应该传递的参数。但是我不清楚应该在哪里修改该代码以使其正常工作。
我尝试修复35号行上的内容,但没有任何帮助,我被卡住了! 请帮助我清除此问题,或者提供一些代码片段以使用cherrypy进行REST服务。 谢谢!
您正在使用的CherryPy版本( 3.2.2
)不支持类中的cherrypy.expose
装饰器,该功能已在版本6中添加 。
您可以使用将exposed
属性设置为True
的旧语法(它也与较新版本兼容)。
该类最终会像:
class StringGeneratorWebService(object):
exposed = True
@cherrypy.tools.accept(media='text/plain')
def GET(self):
return cherrypy.session['mystring']
def POST(self, length=8):
some_string = ''.join(random.sample(string.hexdigits, int(length)))
cherrypy.session['mystring'] = some_string
return some_string
def PUT(self, another_string):
cherrypy.session['mystring'] = another_string
def DELETE(self):
cherrypy.session.pop('mystring', None)