Cherrypy中的RESTful Web服务示例

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Cherrypy中的RESTful Web服务示例相关的知识,希望对你有一定的参考价值。

我正在尝试用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)

以上是关于Cherrypy中的RESTful Web服务示例的主要内容,如果未能解决你的问题,请参考以下文章

java www.zenuml.com的示例。 RESTful Web服务

如何将 StringTemplate 引擎集成到 CherryPy Web 服务器中

django采用cherrypy作为轻量级web服务器。

快速入门系列--WCF--03RESTFUL服务与示例

使用RestFul Web服务中的xml

RESTful Web 服务中的文件下载