使用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中的面向对象编程详解(上)
Apr 13 Python
python fabric使用笔记
May 09 Python
Python获取系统默认字符编码的方法
Jun 04 Python
python使用opencv读取图片的实例
Aug 17 Python
Python排序搜索基本算法之冒泡排序实例分析
Dec 09 Python
在pyqt5中QLineEdit里面的内容回车发送的实例
Jun 21 Python
Python实现性能自动化测试竟然如此简单
Jul 30 Python
Python While循环语句实例演示及原理解析
Jan 03 Python
python 成功引入包但无法正常调用的解决
Mar 09 Python
pip安装提示Twisted错误问题(Python3.6.4安装Twisted错误)
May 09 Python
Python读写锁实现实现代码解析
Nov 28 Python
Python函数中的不定长参数相关知识总结
Jun 24 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
CodeIgniter php mvc框架 中国网站
2008/05/26 PHP
PHP 配置open_basedir 让各虚拟站点独立运行
2009/11/12 PHP
php操作JSON格式数据的实现代码
2011/12/24 PHP
php使用array_chunk函数将一个数组分割成多个数组
2018/12/05 PHP
PHP数组基本用法与知识点总结
2020/06/02 PHP
php框架知识点的整理和补充
2021/03/01 PHP
WordPress 插件——CoolCode使用方法与下载
2007/07/02 Javascript
js parsefloat parseint 转换函数
2010/01/21 Javascript
用jQuery打造TabPanel效果代码
2010/05/22 Javascript
jQuery中element选择器用法实例
2014/12/29 Javascript
JS获取鼠标相对位置的方法
2016/09/20 Javascript
微信小程序 http请求详细介绍
2016/10/09 Javascript
JSON与XML的区别对比及案例应用
2016/11/11 Javascript
用JavaScript实现让浏览器停止载入页面的方法
2017/01/19 Javascript
JavaScript html5利用FileReader实现上传功能
2020/03/27 Javascript
jquery仿ps颜色拾取功能
2017/03/08 Javascript
自定义事件解决重复请求BUG的问题
2017/07/11 Javascript
JS实现颜色的10进制转化成rgba格式的方法
2017/09/04 Javascript
JavaScript中Require调用js的实例分享
2017/10/27 Javascript
Vue.js点击切换按钮改变内容的实例讲解
2018/08/22 Javascript
Cookbook组件形式:优化 Vue 组件的运行时性能
2018/11/25 Javascript
Python中强大的命令行库click入门教程
2016/12/26 Python
HTML中使用python屏蔽一些基本功能的方法
2017/07/07 Python
Python操作mysql数据库实现增删查改功能的方法
2018/01/15 Python
Django Admin实现三级联动的示例代码(省市区)
2018/06/22 Python
Python爬虫框架scrapy实现downloader_middleware设置proxy代理功能示例
2018/08/04 Python
python实现一行输入多个值和一行输出多个值的例子
2019/07/16 Python
HTML5 Canvas API中drawImage()方法的使用实例
2016/03/25 HTML / CSS
美国一家著名的儿童鞋制造商:Stride Rite
2017/01/02 全球购物
莫斯科绝对前卫最秘密的商店:SVMoscow
2017/10/23 全球购物
物理分数没达标检讨书
2014/09/13 职场文书
喝酒驾驶检讨书
2014/10/01 职场文书
音乐教师个人总结
2015/02/06 职场文书
2015年体育教学工作总结
2015/05/20 职场文书
详解分布式系统中如何用python实现Paxos
2021/05/18 Python
python中的plt.cm.Paired用法说明
2021/05/31 Python