我想使用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