Sanic

SANIC是一个python 3.6+web服务器和web框架,它的编写速度很快。它允许使用python 3.5中添加的async/await语法,这使得您的代码不阻塞,速度更快。

该项目的目标是提供一种简单的方法来启动和运行一个高性能的HTTP服务器,该服务器易于构建、扩展和最终扩展。

官方 github 地址

使用方式

这是官方的一个示例程序

from sanic import Sanic
from sanic.response import json

app = Sanic()

@app.route("/")
async def test(request):
    return json({"hello": "world"})

if __name__ == "__main__":
    app.run(host="0.0.0.0", port=8000)

一些笔记

对于上传上来的文件,可以使用 io.BytesIO 进行封装,之后用法便与本地文件一样了。比如下面是一个 ai 服务器的例子

from sanic import Sanic
from sanic.response import json
from io import BytesIO
from main import pred

app = Sanic(name='MyServer')


@app.route('/', methods=['POST'])
async def server(request):
    data = {}
    info = request.files.get('img')
    if not info:
        data['msg'] = '请求参数错误!'
    else:
        res = pred(BytesIO(info.body))
        data['result_code'] = str(res[0])
        data['result'] = res[1]
        data['msg'] = 'Success.'
    return json(data)


if __name__ == '__main__':
    app.run(host='0.0.0.0', port=2333)
Last modification:April 10th, 2020 at 11:06 am