什么是Sanic
Sanic,是Python3.7+ Web服务器和Web框架,旨在提高性能。它允许使用Python3.5中添加的async/await语法,这可以有效避免阻塞从而达到提升响应速度的目的。Sanic致力于提供一种简单且快速,集创建和启动于一体的方法,来实现一个易于修改和拓展的HTTP服务,Sanic具备开箱即用的功能,它可以用于编写,部署和扩展生产级Web应用程序。
有以下特性:
- 内置极速 web server
- 生产准备就绪
- 极高的拓展性
- 支持 ASGI
- 简单直观的 API 设计
- 社区保障
示例
funtions.py
1 2 3 4 5 6 7
| import datetime
def get_datetime(): return datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
def sum_x_y(x, y): return x + y
|
sanic_app.py
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| from sanic import Sanic, json from funtions import get_datetime, sum_x_y
app = Sanic("CodeToAPI") HOST = "localhost" PORT = 8000
@app.route("/getdatetime") async def getdatetime(request): return json({"now": get_datetime()})
@app.get('/sumxy') async def sumxy(request): parameters = request.args result = sum_x_y(int(parameters['x'][0]), int(parameters['y'][0])) return json({'result': result})
if __name__ == "__main__": app.run(host=HOST, port=PORT, debug=False)
|
然后,只需要执行python sanic_app.py就可以启动API服务。
从运行结果可以得知,sanic已经运行在生产环境模式,这与其他Web框架不同,其他框架带有一个内置的开发服务器,并明确表示它只用于开发。而Sanic的情况恰好相反,内置的服务器可以直接用于生产环境。