入门

确保两样都有 pip 以及至少3.6版的Python。Sanic使用新的 async/await 语法,所以早期版本的python将不起作用。

1. 安装 SANIC

如果您运行的是全新安装的Fedora28或更高版本,请确保您拥有 redhat-rpm-config 如果您想使用 sanic 具有 ujson 附属国。

pip3 install sanic

安装sanic uvloopujson 使用bash,您可以使用任何truthy字符串提供这些环境变量中的一个或两个 'y', 'yes', 't', 'true', 'on', '1' 设置 SANIC_NO_X (带“X”= UVLOOP /将UJSON)设置为true将停止该功能的安装。

SANIC_NO_UVLOOP=true SANIC_NO_UJSON=true pip3 install --no-binary :all: sanic

您也可以从安装Sanic conda-forge

conda config --add channels conda-forge
conda install sanic

2。创建一个名为 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)

3. 运行服务器

python3 main.py

4. 检查浏览器

打开地址 http://0.0.0.0:8000 在您的网络浏览器中。你应该看到信息 你好,世界! .

你现在有了一台正常工作的服务器!

5.应用注册表

当您实例化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-existing") 在不存在的应用程序上,它将引发 SanicException 默认情况下。相反,您可以强制该方法返回 Sanic 用那个名字:

app = Sanic.get_app("my_awesome_server", force_create=True)