我想使用WsgiService库在Google App Engine(GAE)上编写REST服务。我最喜欢的两个功能是自动输出特定格式(JSON,XML,...)的方式,具体取决于请求路径中结尾的文件名。此外,它能够使用正则表达式将路径的部分直接映射到变量。是否可以在Python 2.5(Google App Engine)中使用wsgiservice?
The official tutorial使用在Python 2.5中不可用的类装饰器,因此GAE会抛出无效的语法异常。堆栈溢出问题Class decorators in Python 2.5?提到类装饰器只是语法糖,可以用向后兼容的代码替换。另外wsgiservice文档没有提到Python 2.6是严格要求的。不幸的是,我无法替换类装饰器以使其在GAE上运行。
是否有可能将教程中的类装饰器替换为使用Python 2.5运行?如果没有,是否有任何其他库在兼容GAE的同时提供上述功能?
感谢您的回应。两个问题:如果装饰器本身带有参数,那么被替换的函数/类参数作为第一个还是最后一个参数传递?还有如何找出lib需要的Python版本? (我对Python比较新,在任何文档中找不到以上内容......) – fivanski 2011-06-03 08:10:06
1.好问题。其实都不是;如果装饰器接受参数,它必须返回一个函数,并且被替换的函数被传递给*。我将编辑答案以示例(因为这里没有空格)。 2.没有具体的方法来做到这一点;只需查阅相关文档。 – mgiuca 2011-06-03 08:53:54
感谢您的努力,不幸的是,WsgiService确实需要Python 2.6,替换了简单的在一个wsgiservice模块中发生语法异常的修饰器。 – fivanski 2011-06-03 09:51:52