使用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访问纯真IP数据库脚本分享
Jun 29 Python
用ReactJS和Python的Flask框架编写留言板的代码示例
Dec 19 Python
利用Python生成文件md5校验值函数的方法
Jan 10 Python
详解python单元测试框架unittest
Jul 02 Python
解决使用PyCharm时无法启动控制台的问题
Jan 19 Python
详解python使用turtle库来画一朵花
Mar 21 Python
python实现桌面托盘气泡提示
Jul 29 Python
Python如何使用字符打印照片
Jan 03 Python
Python实现括号匹配方法详解
Feb 10 Python
python实现图像拼接功能
Mar 23 Python
Python logging模块写入中文出现乱码
May 21 Python
Python爬取股票信息,并可视化数据的示例
Sep 26 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的面试题集,附我的答案和分析(一)
2006/11/19 PHP
php设计模式 Prototype (原型模式)代码
2011/06/26 PHP
php dirname(__FILE__) 获取当前文件的绝对路径
2011/06/28 PHP
深入理解PHP之OpCode原理详解
2016/06/01 PHP
使用Entrust扩展包在laravel 中实现RBAC的功能
2020/03/16 PHP
javascript读取RSS数据
2007/01/20 Javascript
js程序中美元符号$是什么
2008/06/05 Javascript
javascript IFrame 强制刷新代码
2009/07/23 Javascript
jquery+ajax验证不通过也提交表单问题处理
2014/12/12 Javascript
jQuery选择器querySelector的使用指南
2015/01/23 Javascript
jquery获取多个checkbox的值异步提交给php
2015/07/07 Javascript
基于canvas实现的钟摆效果完整实例
2016/01/26 Javascript
vuejs在解析时出现闪烁的原因及防止闪烁的方法
2016/09/19 Javascript
微信小程序 wxapp视图容器 view详解
2016/10/31 Javascript
Vuex之理解state的用法实例
2017/04/19 Javascript
Vue.js实现模拟微信朋友圈开发demo
2017/04/20 Javascript
ionic2懒加载配置详解
2017/09/01 Javascript
JS控制只能输入数字并且最多允许小数点两位
2019/11/24 Javascript
Vue 封装防刷新考试倒计时组件的实现
2020/06/05 Javascript
微信小程序picker组件两列关联使用方式
2020/10/27 Javascript
[36:29]2018DOTA2亚洲邀请赛 4.1 小组赛 A组加赛 LGD vs TNC
2018/04/02 DOTA
Python模拟自动存取款机的查询、存取款、修改密码等操作
2018/09/02 Python
Pandas-Cookbook 时间戳处理方式
2019/12/07 Python
Django crontab定时任务模块操作方法解析
2020/09/10 Python
关于pycharm 切换 python3.9 报错 ‘HTMLParser‘ object has no attribute ‘unescape‘ 的问题
2020/11/24 Python
HTML5 Canvas图像模糊完美解决办法
2018/02/06 HTML / CSS
免税水晶:Duty Free Crystal
2019/05/13 全球购物
Flesh Beauty官网:露华浓集团旗下彩妆品牌
2021/02/15 全球购物
社团活动总结
2014/04/28 职场文书
捐献物资倡议书范文
2014/05/19 职场文书
意外伤害赔偿协议书范本
2014/09/28 职场文书
2014年物资管理工作总结
2014/12/02 职场文书
2015年汽车销售工作总结
2015/04/07 职场文书
毕业设计答辩开场白
2015/05/29 职场文书
跳高加油稿
2015/07/21 职场文书
详解TypeScript的基础类型
2022/02/18 Javascript