Sanic | Build fast. Run fast.

SANIC|快速构建。跑得很快

构建
Py39TestPy38TestPy37TestCodecov
文档
UserGuideDocumentation
套餐
PyPI
PyPI version
PyPI Wheel
Supported implementations
Code style black
支持
Forums
DiscordAwesome Sanic List
统计数据
DownloadsDownloadsDownloads

Sanic是一家Python 3.7+Web服务器和Web框架,它们都是为快速运行而编写的。它允许使用async/awaitPython3.5中添加的语法可使您的代码实现非阻塞和快速

Sanic也符合ASGI,因此您可以使用alternative ASGI webserver

Source code on GitHub|Help and discussion board|User Guide|Chat on Discord

该项目由社区维护,为社区服务。欢迎投稿!

该项目的目标是提供一种简单的方法来设置和运行易于构建、易于扩展并最终可扩展的高性能HTTP服务器

赞助商

Try CodeStream

使用完整的源代码树上下文在IDE中管理拉请求和执行代码审查。评论任何一行,而不仅仅是不同之处。将跳转到定义、您最喜欢的键绑定和代码智能用于更多工作流

Learn More

感谢我们的赞助商。检查open collective了解有关帮助资助Sanic的更多信息

安装

pip3 install sanic

Sanic利用uvloopujson来帮助提高绩效。如果您不想使用这些软件包,只需添加一个环境变量SANIC_NO_UVLOOP=trueSANIC_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

文档

User GuideAPI Documentation

更改日志

Release Changelogs

问题和讨论

Ask a question or join the conversation

贡献

我们总是很高兴有新的贡献。我们有marked issues good for anyone looking to get started,欢迎您的到来questions on the forums请看一下我们的Contribution guidelines

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。