SANIC|快速构建。跑得很快
构建 | |
---|---|
文档 | |
套餐 | |
支持 | |
统计数据 |
Sanic是一家Python 3.7+Web服务器和Web框架,它们都是为快速运行而编写的。它允许使用async/await
Python3.5中添加的语法可使您的代码实现非阻塞和快速
Sanic也符合ASGI,因此您可以使用alternative ASGI webserver
Source code on GitHub|Help and discussion board|User Guide|Chat on Discord
该项目由社区维护,为社区服务。欢迎投稿!
该项目的目标是提供一种简单的方法来设置和运行易于构建、易于扩展并最终可扩展的高性能HTTP服务器
赞助商
使用完整的源代码树上下文在IDE中管理拉请求和执行代码审查。评论任何一行,而不仅仅是不同之处。将跳转到定义、您最喜欢的键绑定和代码智能用于更多工作流
感谢我们的赞助商。检查open collective了解有关帮助资助Sanic的更多信息
安装
pip3 install sanic
Sanic利用
uvloop
和ujson
来帮助提高绩效。如果您不想使用这些软件包,只需添加一个环境变量SANIC_NO_UVLOOP=true
或SANIC_NO_UJSON=true
在安装时$ export SANIC_NO_UVLOOP=true $ export SANIC_NO_UJSON=true $ pip3 install --no-binary :all: sanic
注意事项
如果您正在全新安装的Fedora 28或更高版本上运行,请确保您有redhat-rpm-config
安装软件包,以防您要使用sanic
使用ujson
依赖性
注意事项
Windows支持目前是“试验性的”,并且是在尽最大努力的基础上。Windows当前也不支持多个工作进程(请参见Issue #1517),但设置workers=1
应成功启动服务器
Hello World示例
from sanic import Sanic
from sanic.response import json
app = Sanic("My Hello, world app")
@app.route('/')
async def test(request):
return json({'hello': 'world'})
if __name__ == '__main__':
app.run()
SANIC现在可以使用以下工具轻松运行sanic hello.app
[2018-12-30 11:37:41 +0200] [13564] [INFO] Goin' Fast @ http://127.0.0.1:8000 [2018-12-30 11:37:41 +0200] [13564] [INFO] Starting worker [13564]
而且,我们可以验证它是否正常工作:curl localhost:8000 -i
HTTP/1.1 200 OK Connection: keep-alive Keep-Alive: 5 Content-Length: 17 Content-Type: application/json {"hello":"world"}
现在,让我们快点造点东西吧!
最低Python版本为3.7。如果您需要Python 3.6支持,请使用v20.12LTS
文档
更改日志
问题和讨论
Ask a question or join the conversation
贡献
我们总是很高兴有新的贡献。我们有marked issues good for anyone looking to get started,欢迎您的到来questions on the forums请看一下我们的Contribution guidelines