python封装成exe_把你的python算法封装成HTTP接口 - Go语言中文社区

python封装成exe_把你的python算法封装成HTTP接口


a21f8f3e25c38ade015d74b9f3a3bbd8.giff6f6b6de594d10bd675de6df114a560c.pnga58d3a818269ffbf8583f3b62bf9934b.png

08a3c09227457fae0746bff49dc13c1b.gif

python提供了很多web框架,帮助我们快速构建API,如 Flask、FastAPI、Tornado。 Flask、FastAPI如出一辙,所以这里只讲 FastAPI、Tornado,如何构建GET和POST接口。

一、安装需要的包

pip install fastapi pip install uvicorn pip install tornado

二、FastAPI的get/post接口服务

get/post接口
# -*- coding: utf-8 -*-from fastapi import FastAPIfrom pydantic import BaseModel  app = FastAPI()class Item(BaseModel):    a: int = None    b: int = None @app.get('/test/a={a}/b={b}')def calculate(a: int=None, b: int=None):    c = a + b    res = {"res":c}    return res@app.post('/test')def calculate(request_data: Item):    a = request_data.a    b = request_data.b    c = a + b    res = {"res":c}    return res  if __name__ == '__main__':    import uvicorn    uvicorn.run(app=app,                host="localhost",                port=8000,                workers=1)
将上述代码保存为get.py,存储在某一路径首先,进入python文件路径,在控制台启动服务

9ebb2f94ec8e038b155e18527b237b9e.png

①浏览器测试:访问 http://localhost:8000/test/a=31/b=12

4184b022c0f5e69dfcd2537234878178.png

②postman测试:

ff9d6c2a7102f7062a012c8165003952.png

③FastAPI的交互测试: 访问 http://localhost:8000/docs

bc0a3cc34181a74917b1b702adcb6fc2.png

三、Tornado的get/post接口服务

据称,Tornado比FastAPI更能承受高并发。 get/post接口
import tornado.httpserverimport tornado.ioloopimport tornado.optionsimport tornado.webfrom tornado import genfrom tornado.concurrent import run_on_executorfrom concurrent.futures import ThreadPoolExecutorimport timefrom tornado.options import define, optionsfrom tornado.platform.asyncio import to_asyncio_future,AsyncIOMainLoopfrom tornado.httpclient import AsyncHTTPClientimport asynciodefine("port", default=8000, help="just run", type=int)class MainHandler(tornado.web.RequestHandler):    def main(self,a,b):        c = float(a) + float(b)        res = {"res":c}        return res        # get接口         def get(self):        a = self.get_body_argument('a')        b = self.get_body_argument('b')        res = self.main(a,b) # 主程序计算        self.write(json.dumps(res,ensure_ascii=False))        # post接口       def post(self):        a = self.get_body_argument('a')        b = self.get_body_argument('b')        res = int(a) * int(b) #主程序计算        self.write(json.dumps(res,ensure_ascii=False))         if __name__ == "__main__":    #运行程序    application = tornado.web.Application([(r"/test", MainHandler),])    application.listen(8000,'localhost')    tornado.ioloop.IOLoop.instance().start()

get接口测试:

b481bf80af5f1fa07403d394862050ae.png

post接口测试:

7c7a01f287ef5fae3d5c1d05e04b43b0.png

你get了么?

今天也要

加油鸭!

7f0cbdacf8d85e476a64c7fbec535241.png
版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/weixin_39889597/article/details/111294173
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2021-06-12 18:52:05
  • 阅读 ( 1155 )
  • 分类:算法

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢