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发送邮件实例讲解(python发邮件附件可以使用email模块实现)
Dec 03 Python
Python中Collections模块的Counter容器类使用教程
May 31 Python
Python对多属性的重复数据去重实例
Apr 18 Python
python pandas 对时间序列文件处理的实例
Jun 22 Python
完美解决在oj中Python的循环输入问题
Jun 25 Python
python requests爬取高德地图数据的实例
Nov 10 Python
Python数据类型之Tuple元组实例详解
May 08 Python
django如何自己创建一个中间件
Jul 24 Python
Pytorch evaluation每次运行结果不同的解决
Jan 02 Python
python matplotlib画盒图、子图解决坐标轴标签重叠的问题
Jan 19 Python
使用opencv识别图像红色区域,并输出红色区域中心点坐标
Jun 02 Python
PyTorch之nn.ReLU与F.ReLU的区别介绍
Jun 27 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
索尼ICF-SW100收音机评测
2021/03/02 无线电
php数组函数序列之ksort()对数组的元素键名进行升序排序,保持索引关系
2011/11/02 PHP
解析dedecms空间迁移步骤详解
2013/05/15 PHP
PHP中对各种加密算法、Hash算法的速度测试对比代码
2014/07/08 PHP
Prototype使用指南之string.js
2007/01/10 Javascript
javascript 播放器 控制
2007/01/22 Javascript
用JQuery调用Session的实现代码
2010/10/29 Javascript
给jQuery方法添加回调函数一款插件的应用
2013/01/21 Javascript
IE、FF、Chrome浏览器中的JS差异介绍
2013/08/13 Javascript
JS操作CSS随机改变网页背景实现思路
2014/03/10 Javascript
javascript中html字符串转化为jquery dom对象的方法
2015/08/27 Javascript
Flow之一个新的Javascript静态类型检查器
2015/12/21 Javascript
jQuery使用serialize()表单序列化时出现中文乱码问题的解决办法
2016/07/27 Javascript
js显示动态时间的方法详解
2016/08/20 Javascript
vue实现点击关注后及时更新列表功能
2018/06/26 Javascript
使用JS获取页面上的所有标签
2018/10/18 Javascript
JS前端知识点总结之内置对象,日期对象和定时器相关操作
2019/07/05 Javascript
vue中使用elementUI组件手动上传图片功能
2019/12/13 Javascript
jQuery 函数实例分析【函数声明、函数表达式、匿名函数等】
2020/05/19 jQuery
多页vue应用的单页面打包方法(内含打包模式的应用)
2020/06/11 Javascript
python使用循环实现批量创建文件夹示例
2014/03/25 Python
python使用正则表达式替换匹配成功的组并输出替换的次数
2017/11/22 Python
Request的中断和ErrorHandler实例解析
2018/02/12 Python
python 时间信息“2018-02-04 18:23:35“ 解析成字典形式的结果代码详解
2018/04/19 Python
Django添加KindEditor富文本编辑器的使用
2018/10/24 Python
在django中自定义字段Field详解
2019/12/03 Python
python logging.info在终端没输出的解决
2020/05/12 Python
如何用Python绘制3D柱形图
2020/09/16 Python
终止合同协议书
2014/04/17 职场文书
工厂门卫岗位职责
2015/04/13 职场文书
2015年采购员工作总结
2015/04/27 职场文书
搞笑欢迎词大全
2015/09/30 职场文书
严以用权学习心得体会
2016/01/12 职场文书
基于HTML十秒做出淘宝页面
2021/10/24 HTML / CSS
科学家研发出新型速效酶,可在 24 小时内降解塑料制品
2022/04/29 数码科技
聊聊CSS粘性定位sticky案例解析
2022/06/01 HTML / CSS