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中的线程进行网络编程的入门教程
Apr 15 Python
分析并输出Python代码依赖的库的实现代码
Aug 09 Python
Python命令启动Web服务器实例详解
Feb 23 Python
详谈python http长连接客户端
Jun 12 Python
python使用itchat库实现微信机器人(好友聊天、群聊天)
Jan 04 Python
python使用Geany编辑器配置方法
Feb 21 Python
Python 调用有道翻译接口实现翻译
Mar 02 Python
Python如何把十进制数转换成ip地址
May 25 Python
python3读取autocad图形文件.py实例
Jun 05 Python
keras实现多种分类网络的方式
Jun 11 Python
python之语音识别speech模块
Sep 09 Python
写一个Python脚本下载哔哩哔哩舞蹈区的所有视频
May 31 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 不同编码下的字符串长度区分
2009/09/26 PHP
rephactor 优秀的PHP的重构工具
2011/06/09 PHP
php中并发读写文件冲突的解决方案
2013/10/25 PHP
全面了解PHP中的全局变量
2016/06/17 PHP
php简单实现文件或图片强制下载的方法
2016/12/06 PHP
微信公众平台开发教程③ PHP实现微信公众号支付功能图文详解
2019/04/10 PHP
直接生成打开窗口代码,不必下载
2008/05/14 Javascript
Knockoutjs的环境搭建教程
2012/11/26 Javascript
javascript中this做事件参数相关问题解答
2013/03/17 Javascript
jQuery中:last选择器用法实例
2014/12/30 Javascript
Eclipse引入jquery报错如何解决
2015/12/01 Javascript
谈一谈javascript闭包
2016/01/28 Javascript
js正则表达式验证表单【完整版】
2017/03/06 Javascript
jQuery+pjax简单示例汇总
2017/04/21 jQuery
JavaScript 程序错误Cannot use 'in' operator to search的解决方法
2017/07/10 Javascript
JS计算距当前时间的时间差实例
2017/12/29 Javascript
Angular @HostBinding()和@HostListener()用法
2018/03/05 Javascript
浅谈Vue2.0中v-for迭代语法的变化(key、index)
2018/03/06 Javascript
vuex 的简单使用
2018/03/22 Javascript
解决layui 复选框等内置控件不显示的问题
2018/08/14 Javascript
Nautil 中使用双向数据绑定的实现
2019/10/02 Javascript
微信小程序scroll-view的滚动条设置实现
2020/03/02 Javascript
jquery实现上传图片功能
2020/06/29 jQuery
实例讲解Python编程中@property装饰器的用法
2016/06/20 Python
Python中shutil模块的常用文件操作函数用法示例
2016/07/05 Python
Python利用逻辑回归分类实现模板
2020/02/15 Python
python_matplotlib改变横坐标和纵坐标上的刻度(ticks)方式
2020/05/16 Python
Python使用Selenium模拟浏览器自动操作功能
2020/09/08 Python
学校采购员岗位职责
2014/01/02 职场文书
《高尔基和他的儿子》教学反思
2014/04/09 职场文书
观后感开头
2015/06/19 职场文书
辞职信怎么写?你都知道吗?
2019/06/24 职场文书
Python与C++中梯度方向直方图的实现
2022/03/17 Python
十大必看国产动漫排名,魁拔上线,第二曾在日本播出
2022/03/18 国漫
USB TYPE-C 或将成为所有智能手机充电标准
2022/04/21 数码科技
CSS中calc(100%-100px)不加空格不生效
2023/05/07 HTML / CSS