使用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使用Phantomjs截屏网页的方法
May 17 Python
Python面向对象程序设计之继承与多继承用法分析
Jul 13 Python
Python读取mat文件,并保存为pickle格式的方法
Oct 23 Python
python游戏地图最短路径求解
Jan 16 Python
django之对FileField字段的upload_to的设定方法
Jul 28 Python
Django异步任务线程池实现原理
Dec 17 Python
python实现最速下降法
Mar 24 Python
scrapy爬虫:scrapy.FormRequest中formdata参数详解
Apr 30 Python
matplotlib之pyplot模块之标题(title()和suptitle())
Feb 22 Python
python中__slots__节约内存的具体做法
Jul 04 Python
Python线程池与GIL全局锁实现抽奖小案例
Apr 13 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 json_encode奇怪问题说明
2011/09/27 PHP
PHP命名空间(Namespace)的使用详解
2013/05/04 PHP
php上传文件常见问题总结
2015/02/03 PHP
Yii中CGridView实现批量删除的方法
2015/12/28 PHP
Laravel5权限管理方法详解
2016/07/26 PHP
PHP实现的二分查找算法实例分析
2017/12/19 PHP
PHP实现的AES加密、解密封装类与用法示例
2018/08/02 PHP
Linux基于php-fpm模式的lamp搭建phpmyadmin的方法
2018/10/25 PHP
javascript中的对象创建 实例附注释
2011/02/08 Javascript
javascript使用百度地图api和html5特性获取浏览器位置
2014/01/10 Javascript
jquery获取节点名称
2015/04/26 Javascript
JavaScript类型系统之Object详解
2016/01/07 Javascript
Javascript实现图片轮播效果(二)图片序列节点的控制实现
2016/02/17 Javascript
分享自己用JS做的扫雷小游戏
2016/02/17 Javascript
react native 原生模块桥接的简单说明小结
2019/02/26 Javascript
原生js+canvas实现验证码
2020/11/29 Javascript
安装python3的时候就是输入python3死活没有反应的解决方法
2018/01/24 Python
Python从数据库读取大量数据批量写入文件的方法
2018/12/10 Python
python算法与数据结构之单链表的实现代码
2019/06/27 Python
python 判断字符串中是否含有汉字或非汉字的实例
2019/07/15 Python
python 实现提取log文件中的关键句子,并进行统计分析
2019/12/24 Python
tensorflow-gpu安装的常见问题及解决方案
2020/01/20 Python
MxNet预训练模型到Pytorch模型的转换方式
2020/05/25 Python
Pytorch实现将模型的所有参数的梯度清0
2020/06/24 Python
matplotlib对象拾取事件处理的实现
2021/01/14 Python
Meli Melo官网:名媛们钟爱的英国奢侈手包品牌
2017/04/17 全球购物
英国玛莎百货新西兰:Marks & Spencer New Zealand
2019/07/21 全球购物
创业计划书中包含的9个方面
2013/12/26 职场文书
国家励志奖学金获奖感言
2014/01/09 职场文书
数控个人求职信范文
2014/02/03 职场文书
美术社团活动总结
2014/06/27 职场文书
项目申报专员岗位职责
2014/07/09 职场文书
教育专业毕业生推荐信
2014/07/10 职场文书
“向国旗敬礼”活动策划方案(4篇)
2014/09/27 职场文书
实习证明格式范文
2015/06/16 职场文书
2016天猫双十一广告语
2016/01/28 职场文书