程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 更多關於編程 >> 使用rpclib進行Python網絡編程時的注釋問題

使用rpclib進行Python網絡編程時的注釋問題

編輯:更多關於編程
           這篇文章主要介紹了使用rpclib進行Python網絡編程時的注釋問題,作者講到了自己在編寫服務器時要用unicode注釋等需要注意的地方,需要的朋友可以參考下    

           rpclib 是一個非常好用的 python webservice 庫,可以動態的生成 wsdl, 不過這個項目已經基本停止,並被一個新的項目取代 spyne,由於舊的項目 工作已經比較穩定,所以我沒有貿然升級到 spyne。

            我在 rpclib 編寫 service 方法時,遇到一個奇怪的錯誤: 訪問 wsdl (http://localhost:9898/?wsdl) 頁面,返回 502 Bad Gateway。

             在日志中看到如下錯誤信息:

     

    代碼如下: ValueError: All strings must be XML compatible: Unicode or ASCII, no NULL bytes or control characters

     

            我檢查了代碼,對比了之前可以工作的版本,發現並沒有什麼不對的地方。

    ? 1 2 3 4 5 6 7 8 9 @srpc(RequestModel, _returns=Unicode) def shenzhen(request): """ 根據傳入的token、車牌號及車駕號,以及驗證碼 查詢該車輛的違章記錄 """ logging.info(request) query = ShenZhenQuery(request) return query.query_car_records()

            但就是沒有正確生成 wsdl,後來我刪除了方法內所有的內容(包括注釋),只留下一條返回 unicode 字符串的語句,然後就工作正常了,但是當我加入了方法的文檔注釋後,又出來了之前的錯誤,於是我 懷疑到了注釋上:中文的注釋,卻沒有使用 unicode 字符串,於是使用 u"" 中文注釋 """ 後,一切正常!

           查看生成的 wsdl,發現原來原來 rpclib 使用注釋生成了

     

     代碼如下: <wsdl:documentation>

     

           根據傳入的token、車牌號及車駕號,以及驗證碼 查詢該車輛的違章記錄

     

     代碼如下: </wsdl:documentation>

     

           難怪一遇到中文注釋就會出錯!

            注< >:更多精彩教程請關注三聯編程

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved