使用rpclib进行Python网络编程时的注释问题


Posted in Python onMay 06, 2015

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

我检查了代码,对比了之前可以工作的版本,发现并没有什么不对的地方。

@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>

难怪一遇到中文注释就会出错!

Python 相关文章推荐
python读取csv文件示例(python操作csv)
Mar 11 Python
Python爬虫实现百度图片自动下载
Feb 04 Python
TensorFlow实现非线性支持向量机的实现方法
Apr 28 Python
Python requests库用法实例详解
Aug 14 Python
Python实现查找二叉搜索树第k大的节点功能示例
Jan 24 Python
python命令行参数用法实例分析
Jun 25 Python
wxPython修改文本框颜色过程解析
Feb 14 Python
基于Python数据结构之递归与回溯搜索
Feb 26 Python
基于python检查矩阵计算结果
May 21 Python
django filter过滤器实现显示某个类型指定字段不同值方式
Jul 16 Python
Python3读写ini配置文件的示例
Nov 06 Python
Python eval函数介绍及用法
Nov 09 Python
pymongo给mongodb创建索引的简单实现方法
May 06 #Python
Python中用PIL库批量给图片加上序号的教程
May 06 #Python
python写入中英文字符串到文件的方法
May 06 #Python
python使用xlrd模块读写Excel文件的方法
May 06 #Python
在Python中使用全局日志时需要注意的问题
May 06 #Python
python通过post提交数据的方法
May 06 #Python
python实现逆波兰计算表达式实例详解
May 06 #Python
You might like
PHP表单递交控件名称含有点号(.)会被转化为下划线(_)的处理方法
2013/01/06 PHP
PHP生成不重复随机数的方法汇总
2014/11/19 PHP
公共js在页面底部加载的注意事项介绍
2013/07/18 Javascript
jquery使用each方法遍历json格式数据实例
2015/05/18 Javascript
jQuery 1.9.1源码分析系列(十)事件系统之绑定事件
2015/11/19 Javascript
js表单中选择框值的获取及表单的序列化
2015/12/17 Javascript
jQuery.datatables.js插件用法及api实例详解
2016/10/28 Javascript
Javascript 函数的四种调用模式
2016/11/05 Javascript
bootstrap响应式工具使用详解
2017/11/29 Javascript
vue中使用iview自定义验证关键词输入框问题及解决方法
2018/03/26 Javascript
深入理解JavaScript和TypeScript中的class
2018/04/22 Javascript
js字符串类型String常用操作实例总结
2019/07/05 Javascript
详解Vue之计算属性
2020/06/20 Javascript
八种Vue组件间通讯方式合集(推荐)
2020/08/18 Javascript
[01:18]DOTA2超级联赛专访hanci ForLove淘汰感言曝光
2013/06/04 DOTA
[36:29]2018DOTA2亚洲邀请赛 4.1 小组赛 A组加赛 LGD vs TNC
2018/04/02 DOTA
python计算最大优先级队列实例
2013/12/18 Python
下载安装setuptool和pip linux安装pip    
2014/01/24 Python
Python获取Windows或Linux主机名称通用函数分享
2014/11/22 Python
python3 实现一行输入,空格隔开的示例
2018/11/14 Python
python Pexpect 实现输密码 scp 拷贝的方法
2019/01/03 Python
浅谈python中get pass用法
2019/03/19 Python
Python基于BeautifulSoup和requests实现的爬虫功能示例
2019/08/02 Python
使用Python-OpenCV消除图像中孤立的小区域操作
2020/07/05 Python
Belle Maison倍美丛官网:日本千趣会旗下邮购网站
2016/07/22 全球购物
乌克兰的第一家手表店:Deka
2020/03/05 全球购物
params有什么用
2016/03/01 面试题
说说在weblogic中开发消息Bean时的persistent与non-persisten的差别
2013/04/07 面试题
大学生的网络创业计划书
2013/12/26 职场文书
网上签名寄语活动留言
2014/01/18 职场文书
四年大学自我鉴定
2014/02/17 职场文书
潘婷洗发水广告词
2014/03/14 职场文书
大学生个人求职信例文
2014/07/07 职场文书
培训感想范文
2015/08/07 职场文书
python中的被动信息搜集
2021/04/29 Python
基于Python实现射击小游戏的制作
2022/04/06 Python