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)