python-tornado的接口用swagger进行包装的实例


Posted in Python onAugust 29, 2019

写这个文章的主要原因,就是因为没有相关的东西,导致我完全不知道应该怎么做,经过了两个晚上的摸索,终于搞清楚了,如果有谁需要tornado+swagger的输出模式,可以照这个套;

主要是static文件的生成

我们用swagger就是为了做一个静态页面,也就是生成一个static文件:

几个必备的工具:swagger-py-codegen我们不用他们的文件框架只需要其生成的static文件,拷贝到自己文件夹下即可;

1)需要注意的是生成文件需要用yaml文件,当编辑好文件后,最主要的是要注意base_path文件的改动,你生成的文件的请求会加上你basepath的内容,会造成请求出错, 比如 你的url:port/GET?testparas=test,那么如果说你的static文件生成的过程中,如下图所示

python-tornado的接口用swagger进行包装的实例

2)生成的文件,swagger-ui中的swagger.json文件是按照你的yaml文件生成的,index.html文件中是有地方设置swagger.json的地址的,如下图所示

python-tornado的接口用swagger进行包装的实例

3)这个时候我们可以启动我们的swagger程序,

python-tornado的接口用swagger进行包装的实例

接下来接受一下tornado中的一些设置,主要为application的设置:

在这里其实没用到tornado的高级方法,只是随意设置了一个参数进行测试:

`import tornado.web
import tornado.ioloop
import os


abs_path = os.path.dirname(os.path.abspath("__file__"))
print(abs_path)

class IndexHandler(tornado.web.RequestHandler):
 def get(self, *args, **kwargs):
  para = self.get_argument('test', None)
  self.write("test tornado {}".format(para))


if __name__ == '__main__':
 app = tornado.web.Application([
  (r'/GET', IndexHandler)
 ],
  static_path=os.path.join(abs_path, 'static')
 )
 # 监听端口
 app.listen(8000)
 tornado.ioloop.IOLoop.current().start()`

目录结构如下

python-tornado的接口用swagger进行包装的实例

生成swagger-ui的代码如下:

swagger_py_codegen -s api.yaml project-one -p demo -tlp=tornado --ui --spec

其中 ?ui ?spec是生成swagger-ui的关键代码

以上这篇python-tornado的接口用swagger进行包装的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python利用pyHook实现监听用户鼠标与键盘事件
Aug 21 Python
python 队列详解及实例代码
Oct 18 Python
python递归查询菜单并转换成json实例
Mar 27 Python
python实现的正则表达式功能入门教程【经典】
Jun 05 Python
TensorFlow安装及jupyter notebook配置方法
Sep 08 Python
Pandas探索之高性能函数eval和query解析
Oct 28 Python
Python 12306抢火车票脚本
Feb 07 Python
对Python3中dict.keys()转换成list类型的方法详解
Feb 03 Python
在Pycharm中使用GitHub的方法步骤
Jun 13 Python
让你的Python代码实现类型提示功能
Nov 19 Python
python 通过手机号识别出对应的微信性别(实例代码)
Dec 22 Python
python递归调用中的坑:打印有值, 返回却None
Mar 16 Python
Python csv模块使用方法代码实例
Aug 29 #Python
python datetime中strptime用法详解
Aug 29 #Python
使用OpenCV实现仿射变换—平移功能
Aug 29 #Python
python网络编程 使用UDP、TCP协议收发信息详解
Aug 29 #Python
使用OpenCV实现仿射变换—缩放功能
Aug 29 #Python
python实现两个文件夹的同步
Aug 29 #Python
使用OpenCV实现仿射变换—旋转功能
Aug 29 #Python
You might like
PHP开发中常用的8个小技巧
2008/08/27 PHP
php 各种应用乱码问题的解决方法
2010/05/09 PHP
PHP禁止个别IP访问网站
2013/10/30 PHP
php动态读取数据清除最右边距的方法
2017/04/12 PHP
laravel csrf排除路由,禁止,关闭指定路由的例子
2019/10/21 PHP
web的各种前端打印方法之jquery打印插件PrintArea实现网页打印
2013/01/09 Javascript
js 表单提交后按钮变灰的实例代码
2013/08/16 Javascript
js识别不同浏览器基于userAgent做判断
2014/07/29 Javascript
node.js中的favicon.ico请求问题处理
2014/12/15 Javascript
基于JQuery实现仿网易邮箱全屏动感滚动插件fullPage
2015/09/20 Javascript
JavaScript文档碎片操作实例分析
2015/12/12 Javascript
基于JS代码实现当鼠标悬停表格上显示这一格的全部内容
2016/06/12 Javascript
Three.js基础部分学习
2017/01/08 Javascript
Angular的$http的ajax的请求操作(推荐)
2017/01/10 Javascript
在vue组件中使用axios的方法
2018/03/16 Javascript
vue.js使用v-model实现表单元素(input) 双向数据绑定功能示例
2019/03/08 Javascript
Vue开发之封装分页组件与使用示例
2019/04/25 Javascript
layui动态渲染生成select的option值方法
2019/09/23 Javascript
layui(1.0.9)文件上传upload,前后端的实例代码
2019/09/26 Javascript
nodejs环境使用Typeorm连接查询Oracle数据
2019/12/05 NodeJs
vue使用screenfull插件实现全屏功能
2020/09/17 Javascript
使用Vue实现一个树组件的示例
2020/11/06 Javascript
Vue +WebSocket + WaveSurferJS 实现H5聊天对话交互的实例
2020/11/18 Vue.js
[02:27]2014DOTA2国际邀请赛 VG赛后采访:更大的挑战在等着我们
2014/07/13 DOTA
Python实现简单多线程任务队列
2016/02/27 Python
matplotlib设置legend图例代码示例
2017/12/19 Python
python pillow模块使用方法详解
2019/08/30 Python
python连接mongodb集群方法详解
2020/02/13 Python
python函数enumerate,operator和Counter使用技巧实例小结
2020/02/22 Python
解决pycharm下pyuic工具使用的问题
2020/04/08 Python
python爬虫学习笔记之Beautifulsoup模块用法详解
2020/04/09 Python
泰国第一在线超市:Tops
2021/02/13 全球购物
公司新年寄语
2014/04/04 职场文书
党支部三会一课计划
2014/09/24 职场文书
2014初中数学教研组工作总结
2014/12/19 职场文书
普希金诗歌赏析(6首)
2019/08/22 职场文书