使用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爬虫之爬虫编写全记录
Nov 06 Python
Python中使用异常处理来判断运行的操作系统平台方法
Jan 22 Python
Django查找网站项目根目录和对正则表达式的支持
Jul 15 Python
python绘制铅球的运行轨迹代码分享
Nov 14 Python
Python实现输入二叉树的先序和中序遍历,再输出后序遍历操作示例
Jul 27 Python
Python实现将通信达.day文件读取为DataFrame
Dec 22 Python
学习和使用python的13个理由
Jul 30 Python
解决Django连接db遇到的问题
Aug 29 Python
在Django下测试与调试REST API的方法详解
Aug 29 Python
python二分法查找算法实现方法【递归与非递归】
Dec 06 Python
python用pip install时安装失败的一系列问题及解决方法
Feb 24 Python
jupyter notebook 的工作空间设置操作
Apr 20 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/10/09 PHP
mysql From_unixtime及UNIX_TIMESTAMP及DATE_FORMAT日期函数
2010/03/21 PHP
PHP 使用MySQL管理Session的回调函数详解
2013/06/21 PHP
php简单生成一组与多组随机字符串的方法
2017/05/09 PHP
PHP Post获取不到非表单数据的问题解决办法
2018/02/27 PHP
PDO::_construct讲解
2019/01/27 PHP
微信推送功能实现方式图文详解
2019/07/12 PHP
jquery控制listbox中项的移动并排序
2009/11/12 Javascript
COM中获取JavaScript数组大小的代码
2009/11/22 Javascript
js取滚动条的尺寸的函数代码
2011/11/30 Javascript
一个级联菜单代码学习及removeClass与addClass的应用
2013/01/24 Javascript
node.js开发中使用Node Supervisor实现监测文件修改并自动重启应用
2014/11/04 Javascript
使用JS实现图片展示瀑布流效果的实例代码
2016/09/12 Javascript
从零开始学习Node.js系列教程五:服务器监听方法示例
2017/04/13 Javascript
详解如何去除vue项目中的#——History模式
2017/10/13 Javascript
Bootstrap Paginator+PageHelper实现分页效果
2018/12/29 Javascript
详解小程序云开发数据库
2019/05/20 Javascript
python如何为创建大量实例节省内存
2018/03/20 Python
python 在指定范围内随机生成不重复的n个数实例
2019/01/28 Python
Python的numpy库下的几个小函数的用法(小结)
2019/07/12 Python
Python学习笔记之函数的定义和作用域实例详解
2019/08/13 Python
Python2比较当前图片跟图库哪个图片相似的方法示例
2019/09/28 Python
pycharm实现print输出保存到txt文件
2020/06/01 Python
Python3爬虫中Splash的知识总结
2020/07/10 Python
使用python脚本自动生成K8S-YAML的方法示例
2020/07/12 Python
python获取本周、上周、本月、上月及本季的时间代码实例
2020/09/08 Python
如何用python实现一个HTTP连接池
2021/01/14 Python
找到您丢失的钥匙、钱包和手机:Tile
2017/05/19 全球购物
AJAX的优缺点都有什么
2015/08/18 面试题
护理专业求职信
2014/06/15 职场文书
2015年五一劳动节慰问信
2015/03/23 职场文书
2015年评职称工作总结范文
2015/04/20 职场文书
关于党风廉政建设宣传教育月的活动总结!
2019/08/08 职场文书
mongodb的安装和开机自启动详细讲解
2021/08/02 MongoDB
Win11 引入 Windows 365 云操作系统,适应疫情期间混合办公模式:启动时直接登录、模
2022/04/06 数码科技
三种方式清除vue路由跳转router-link的历史记录
2022/04/10 Vue.js