python-tornado的接口用swagger進(jìn)行包裝的實(shí)例
寫(xiě)這個(gè)文章的主要原因,就是因?yàn)闆](méi)有相關(guān)的東西,導(dǎo)致我完全不知道應(yīng)該怎么做,經(jīng)過(guò)了兩個(gè)晚上的摸索,終于搞清楚了,如果有誰(shuí)需要tornado+swagger的輸出模式,可以照這個(gè)套;
主要是static文件的生成
我們用swagger就是為了做一個(gè)靜態(tài)頁(yè)面,也就是生成一個(gè)static文件:
幾個(gè)必備的工具:swagger-py-codegen我們不用他們的文件框架只需要其生成的static文件,拷貝到自己文件夾下即可;
1)需要注意的是生成文件需要用yaml文件,當(dāng)編輯好文件后,最主要的是要注意base_path文件的改動(dòng),你生成的文件的請(qǐng)求會(huì)加上你basepath的內(nèi)容,會(huì)造成請(qǐng)求出錯(cuò), 比如 你的url:port/GET?testparas=test,那么如果說(shuō)你的static文件生成的過(guò)程中,如下圖所示
2)生成的文件,swagger-ui中的swagger.json文件是按照你的yaml文件生成的,index.html文件中是有地方設(shè)置swagger.json的地址的,如下圖所示
3)這個(gè)時(shí)候我們可以啟動(dòng)我們的swagger程序,
接下來(lái)接受一下tornado中的一些設(shè)置,主要為application的設(shè)置:
在這里其實(shí)沒(méi)用到tornado的高級(jí)方法,只是隨意設(shè)置了一個(gè)參數(shù)進(jìn)行測(cè)試:
`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') ) # 監(jiān)聽(tīng)端口 app.listen(8000) tornado.ioloop.IOLoop.current().start()`
目錄結(jié)構(gòu)如下
生成swagger-ui的代碼如下:
swagger_py_codegen -s api.yaml project-one -p demo -tlp=tornado --ui --spec
其中 –ui –spec是生成swagger-ui的關(guān)鍵代碼
以上這篇python-tornado的接口用swagger進(jìn)行包裝的實(shí)例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python中關(guān)于元組 集合 字符串 函數(shù) 異常處理的全面詳解
本篇文章介紹了我在學(xué)習(xí)python過(guò)程中對(duì)元組、集合、字符串、函數(shù)、異常處理的總結(jié),通讀本篇對(duì)大家的學(xué)習(xí)或工作具有一定的價(jià)值,需要的朋友可以參考下2021-10-10在Python 中同一個(gè)類(lèi)兩個(gè)函數(shù)間變量的調(diào)用方法
今天小編就為大家分享一篇在Python 中同一個(gè)類(lèi)兩個(gè)函數(shù)間變量的調(diào)用方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-01-01Numpy中ndim、shape、dtype、astype的用法詳解
這篇文章主要介紹了Numpy中ndim、shape、dtype、astype的用法詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06django一對(duì)多模型以及如何在前端實(shí)現(xiàn)詳解
這篇文章主要介紹了django一對(duì)多模型以及如何在前端實(shí)現(xiàn)詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-07-07對(duì)Python新手編程過(guò)程中如何規(guī)避一些常見(jiàn)問(wèn)題的建議
這篇文章中作者對(duì)Python新手編程過(guò)程中如何規(guī)避一些常見(jiàn)問(wèn)題給出了建議,主要著眼于初學(xué)者對(duì)于一些常用函數(shù)方法在平時(shí)的使用習(xí)慣中的問(wèn)題給出建議,需要的朋友可以參考下2015-04-04python的import?機(jī)制是怎么實(shí)現(xiàn)的
這篇文章主要介紹了python的import?機(jī)制是怎么實(shí)現(xiàn)的,import有Python運(yùn)行時(shí)的全局模塊池的維護(hù)和搜索、解析與搜索模塊路徑的樹(shù)狀結(jié)構(gòu)等作用,下文具體相關(guān)介紹需要的小伙伴可以參考一下2022-05-05使用Python實(shí)現(xiàn)監(jiān)聽(tīng)html點(diǎn)擊事件教程
在Web開(kāi)發(fā)中,經(jīng)常需要在用戶與頁(yè)面交互時(shí)執(zhí)行一些操作,本文將介紹如何使用Python來(lái)監(jiān)聽(tīng)HTML點(diǎn)擊事件,有需要的小伙伴可以跟隨小編一起了解下2024-04-04