Cherrypy中的RESTful Web服务示例

问题描述 投票:2回答:1

我正在尝试用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服务。 谢谢!

python rest cherrypy
1个回答
4
投票

您正在使用的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)
© www.soinside.com 2019 - 2024. All rights reserved.