亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

使用rpclib進(jìn)行Python網(wǎng)絡(luò)編程時(shí)的注釋問(wèn)題

 更新時(shí)間:2015年05月06日 10:44:38   投稿:goldensun  
這篇文章主要介紹了使用rpclib進(jìn)行Python網(wǎng)絡(luò)編程時(shí)的注釋問(wèn)題,作者講到了自己在編寫(xiě)服務(wù)器時(shí)要用unicode注釋等需要注意的地方,需要的朋友可以參考下

rpclib 是一個(gè)非常好用的 python webservice 庫(kù),可以動(dòng)態(tài)的生成 wsdl, 不過(guò)這個(gè)項(xiàng)目已經(jīng)基本停止,并被一個(gè)新的項(xiàng)目取代 spyne,由于舊的項(xiàng)目 工作已經(jīng)比較穩(wěn)定,所以我沒(méi)有貿(mào)然升級(jí)到 spyne。

我在 rpclib 編寫(xiě) service 方法時(shí),遇到一個(gè)奇怪的錯(cuò)誤: 訪問(wèn) wsdl (http://localhost:9898/?wsdl) 頁(yè)面,返回 502 Bad Gateway。

在日志中看到如下錯(cuò)誤信息:

復(fù)制代碼 代碼如下:
ValueError: All strings must be XML compatible: Unicode or ASCII, no NULL bytes or control characters

我檢查了代碼,對(duì)比了之前可以工作的版本,發(fā)現(xiàn)并沒(méi)有什么不對(duì)的地方。

@srpc(RequestModel, _returns=Unicode)
def shenzhen(request):
  """
  根據(jù)傳入的token、車牌號(hào)及車駕號(hào),以及驗(yàn)證碼
  查詢?cè)撥囕v的違章記錄
  """
  logging.info(request)
  query = ShenZhenQuery(request)
  return query.query_car_records()

但就是沒(méi)有正確生成 wsdl,后來(lái)我刪除了方法內(nèi)所有的內(nèi)容(包括注釋),只留下一條返回 unicode 字符串的語(yǔ)句,然后就工作正常了,但是當(dāng)我加入了方法的文檔注釋后,又出來(lái)了之前的錯(cuò)誤,于是我 懷疑到了注釋上:中文的注釋,卻沒(méi)有使用 unicode 字符串,于是使用 u"" 中文注釋 """ 后,一切正常!

查看生成的 wsdl,發(fā)現(xiàn)原來(lái)原來(lái) rpclib 使用注釋生成了

復(fù)制代碼 代碼如下:
<wsdl:documentation>

根據(jù)傳入的token、車牌號(hào)及車駕號(hào),以及驗(yàn)證碼 查詢?cè)撥囕v的違章記錄

復(fù)制代碼 代碼如下:
</wsdl:documentation>

難怪一遇到中文注釋就會(huì)出錯(cuò)!

相關(guān)文章

最新評(píng)論