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 爬虫爬取指定博客的所有文章
Feb 17 Python
python中实现数组和列表读取一列的方法
Apr 03 Python
python smtplib发送带附件邮件小程序
May 22 Python
Django给admin添加Action的步骤详解
May 01 Python
django之使用celery-把耗时程序放到celery里面执行的方法
Jul 12 Python
django框架用户权限中的session缓存到redis中的方法
Aug 06 Python
Flask项目中实现短信验证码和邮箱验证码功能
Dec 05 Python
简单了解python字符串前面加r,u的含义
Dec 26 Python
Python列表操作方法详解
Feb 09 Python
解决springboot yml配置 logging.level 报错问题
Feb 21 Python
Python timeit模块原理及使用方法
Oct 10 Python
完美解决torch.cuda.is_available()一直返回False的玄学方法
Feb 06 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上传图片、删除图片实现代码
2010/05/12 PHP
PHP中设置时区方法小结
2012/06/03 PHP
destoon网站转移服务器后搜索汉字出现乱码的解决方法
2014/06/21 PHP
PHP实现的蚂蚁爬杆路径算法代码
2015/12/03 PHP
微信公众号支付之坑:调用支付jsapi缺少参数 timeStamp等错误解决方法
2016/01/12 PHP
PHP支付宝当面付2.0代码
2018/12/21 PHP
laravel excel 上传文件保存到本地服务器功能
2019/11/14 PHP
Iframe thickbox2.0使用的方法
2009/03/05 Javascript
javascript 面向对象全新理练之继承与多态
2009/12/03 Javascript
JS中获取函数调用链所有参数的方法
2015/05/07 Javascript
纯javascript制作日历控件
2015/07/17 Javascript
jQuery解决input超多的表单提交
2015/08/10 Javascript
JS实现样式清新的横排下拉菜单效果
2015/10/09 Javascript
Easyui 之 Treegrid 笔记
2016/04/29 Javascript
jQuery仿京东商城楼梯式导航定位菜单
2016/07/25 Javascript
JS中数组重排序方法
2016/11/11 Javascript
Vue 2.0学习笔记之使用$refs访问Vue中的DOM
2017/12/19 Javascript
JS/jQuery实现DIV延时几秒后消失或显示的方法
2018/02/12 jQuery
node+express框架中连接使用mysql(经验总结)
2018/11/10 Javascript
js实现全选和全不选功能
2020/07/28 Javascript
[02:42]DOTA2城市挑战赛收官在即 四强之争风起云涌
2018/06/05 DOTA
发布你的Python模块详解
2016/09/15 Python
Python_LDA实现方法详解
2017/10/25 Python
深入了解如何基于Python读写Kafka
2019/12/31 Python
pycharm安装及如何导入numpy
2020/04/03 Python
Python类中的装饰器在当前类中的声明与调用详解
2020/04/15 Python
Linux系统下升级pip的完整步骤
2021/01/31 Python
维多利亚的秘密阿联酋官网:Victoria’s Secret阿联酋
2019/12/07 全球购物
运动会广播稿500字
2014/01/28 职场文书
薪酬专员岗位职责
2014/02/18 职场文书
挂职个人工作总结
2015/03/05 职场文书
素质拓展训练感想
2015/08/07 职场文书
导游词之沈阳植物园
2019/11/30 职场文书
Go语言设计模式之结构型模式
2021/06/22 Golang
JS创建或填充任意长度数组的小技巧汇总
2021/10/24 Javascript
Sql Server 行数据的某列值想作为字段列显示的方法
2022/04/20 SQL Server