概述
Sanic是Python 3.6以上版本的网络服务器和网络框架,旨在快速发展。它允许使用Python 3.5中添加的async / await语法,这使您的代码无阻塞且快速。
该项目的目标是提供一种简单的方法来启动和运行高性能HTTP服务器,该服务器易于构建,扩展和最终扩展。
当前版本是20.12.0
在开始之前,请确保同时拥有pip和Python 3.6版。Sanic使用了新的async / await语法,因此早期版本的python将无法使用。
开始
- 安装
依赖ujson
的bash安装
pip3 install sanic
若是不想使用uvloop
和ujson
SANIC_NO_UVLOOP=true SANIC_NO_UJSON=true pip install sanic
使用conda-forge
安装
conda config --add channels conda-forge
conda install sanic
- 创建主文件
创建main.py
from sanic import Sanic
from sanic.response import json
app = Sanic("hello_example")
@app.route("/")
async def test(request):
return json({"hello": "world"})
if __name__ == "__main__":
app.run(host="0.0.0.0", port=8000)
- 开启服务
python3 main.py
- 浏览器输入
http://0.0.0.0:8000
- 应用注册
当您实例化一个Sanic实例时,可以稍后从Sanic应用程序注册表检索该实例。例如,如果您需要从无法访问Sanic实例的位置访问Sanic实例,这将非常有用。
# ./path/to/server.py
from sanic import Sanic
app = Sanic("my_awesome_server")
# ./path/to/somewhere_else.py
from sanic import Sanic
app = Sanic.get_app("my_awesome_server")
如果使用函数Sanic.get_app("non-existiong")
访问的app实例不存在,则默认抛出SanicException
异常。相反,您可以强制该方法返回具有该名称的Sanic的新实例:
app = Sanic.get_app("my_awesome_server", force_create=True)