使用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多线程学习资料
Dec 19 Python
Python中join和split用法实例
Apr 14 Python
python读取TXT到数组及列表去重后按原来顺序排序的方法
Jun 26 Python
Python 中 Meta Classes详解
Feb 13 Python
浅析PHP与Python进行数据交互
May 15 Python
python对html过滤处理的方法
Oct 21 Python
对python 命令的-u参数详解
Dec 03 Python
Python基于time模块表示时间常用方法
Jun 18 Python
详解python datetime模块
Aug 17 Python
Python爬虫之Selenium鼠标事件的实现
Dec 04 Python
Django中使用Celery的方法步骤
Dec 07 Python
详解Open Folder as PyCharm Project怎么添加的方法
Dec 29 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运算符的知识大全
2011/11/03 PHP
php的memcache类分享(memcache队列)
2014/03/26 PHP
PHP中上传多个文件的表单设计例子
2014/11/19 PHP
PHP长连接实现与使用方法详解
2018/02/11 PHP
PHP+iframe模拟Ajax上传文件功能示例
2019/07/02 PHP
在laravel中使用with实现动态添加where条件
2019/10/10 PHP
JS 对象介绍
2010/01/20 Javascript
一个网马的tips实现分析
2010/11/28 Javascript
jQuery EasyUI API 中文文档 - Spinner微调器使用
2011/10/21 Javascript
获取数组中最大最小值方法js代码(自写)
2013/08/12 Javascript
JavaScript 数组详解
2013/10/10 Javascript
js省市县三级联动效果实例
2020/04/15 Javascript
bootstrap jquery dataTable 异步ajax刷新表格数据的实现方法
2017/02/10 Javascript
React Native实现进度条弹框的示例代码
2017/07/17 Javascript
vue.js vue-router如何实现无效路由(404)的友好提示
2017/12/20 Javascript
详解使用webpack构建多页面应用
2017/12/21 Javascript
Vue中render函数的使用方法
2018/01/31 Javascript
Vue实现商品分类菜单数量提示功能
2019/07/26 Javascript
深入理解Django中内置的用户认证
2017/10/06 Python
python基础教程项目二之画幅好画
2018/04/02 Python
python中实现数组和列表读取一列的方法
2018/04/03 Python
在python中实现对list求和及求积
2018/11/14 Python
机器学习实战之knn算法pandas
2019/06/22 Python
python快速排序的实现及运行时间比较
2019/11/22 Python
python实现俄罗斯方块游戏(改进版)
2020/03/13 Python
使用纯HTML5编写一款网页上的时钟的代码分享
2015/11/16 HTML / CSS
舒适的豪华鞋:Taryn Rose
2018/05/03 全球购物
美国高级音响品牌:Master&Dynamic
2018/07/05 全球购物
服装设计专业毕业生求职信
2014/04/09 职场文书
小学元宵节活动总结
2015/02/06 职场文书
销售助理岗位职责
2015/02/11 职场文书
2015人事行政工作总结范文
2015/05/21 职场文书
什么是求职信?求职信应包含哪些内容?
2019/08/14 职场文书
linux下安装redis图文详细步骤
2021/12/04 Redis
光之国的四大叛徒:第一贝利亚导致宇宙毁灭,赛文奥特曼在榜
2022/03/18 日漫
Windows Server 2012配置DNS服务器的方法
2022/04/29 Servers