.. image:: https://raw.githubusercontent.com/sanic-org/sanic-assets/master/png/sanic-framework-logo-400x97.png :alt: Sanic | 快速构建。快速运行。
Sanic | 快速构建。快速运行。
.. start-badges
.. list-table:: :widths: 15 85 :stub-columns: 1
* - 构建
- | |Tests|
* - 文档
- | |UserGuide| |Documentation|
* - 包
- | |PyPI| |PyPI version| |Wheel| |Supported implementations| |Code style ruff|
* - 支持
- | |Forums| |Discord| |Awesome|
* - 统计
- | |Monthly Downloads| |Weekly Downloads| |Conda downloads|
.. |UserGuide| image:: https://img.shields.io/badge/user%20guide-sanic-ff0068 :target: https://sanic.dev/ .. |Forums| image:: https://img.shields.io/badge/forums-community-ff0068.svg :target: https://community.sanicframework.org/ .. |Discord| image:: https://img.shields.io/discord/812221182594121728?logo=discord&label=Discord&color=5865F2 :target: https://discord.gg/FARQzAEMAA .. |Tests| image:: https://github.com/sanic-org/sanic/actions/workflows/tests.yml/badge.svg?branch=main :target: https://github.com/sanic-org/sanic/actions/workflows/tests.yml .. |Documentation| image:: https://readthedocs.org/projects/sanic/badge/?version=latest :target: http://sanic.readthedocs.io/en/latest/?badge=latest .. |PyPI| image:: https://img.shields.io/pypi/v/sanic.svg :target: https://pypi.python.org/pypi/sanic/ .. |PyPI version| image:: https://img.shields.io/pypi/pyversions/sanic.svg :target: https://pypi.python.org/pypi/sanic/ .. |Code style ruff| image:: https://img.shields.io/badge/code%20style-ruff-000000.svg :target: https://docs.astral.sh/ruff/ .. |Wheel| image:: https://img.shields.io/pypi/wheel/sanic.svg :alt: PyPI Wheel :target: https://pypi.python.org/pypi/sanic .. |Supported implementations| image:: https://img.shields.io/pypi/implementation/sanic.svg :alt: 支持的实现 :target: https://pypi.python.org/pypi/sanic .. |Awesome| image:: https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg :alt: Awesome Sanic 列表 :target: https://github.com/mekicha/awesome-sanic .. |Monthly Downloads| image:: https://img.shields.io/pypi/dm/sanic.svg :alt: 下载量 :target: https://pepy.tech/project/sanic .. |Weekly Downloads| image:: https://img.shields.io/pypi/dw/sanic.svg :alt: 下载量 :target: https://pepy.tech/project/sanic .. |Conda downloads| image:: https://img.shields.io/conda/dn/conda-forge/sanic.svg :alt: 下载量 :target: https://anaconda.org/conda-forge/sanic
.. end-badges
Sanic 是一个为快速而生的 Python 3.8+ Web 服务器和 Web 框架。它允许使用 Python 3.5 中新增的 async/await
语法,使您的代码非阻塞且高效。
Sanic 也兼容 ASGI,因此您可以使用 替代的 ASGI Web 服务器 <https://sanicframework.org/en/guide/deployment/running.html#asgi>
_ 来部署它。
GitHub 上的源代码 <https://github.com/sanic-org/sanic/>
_ | 帮助和讨论板 <https://community.sanicframework.org/>
_ | 用户指南 <https://sanicframework.org>
_ | Discord 聊天 <https://discord.gg/FARQzAEMAA>
_
该项目由社区维护,为社区服务。欢迎贡献!
项目的目标是提供一种简单的方法来快速搭建、扩展和最终扩展高性能 HTTP 服务器。
赞助
查看 open collective <https://opencollective.com/sanic-org>
_ 以了解如何帮助资助 Sanic。
安装
pip3 install sanic
Sanic 使用 ``uvloop`` 和 ``ujson`` 来提高性能。如果您不想使用这些包,只需在安装时添加环境变量 ``SANIC_NO_UVLOOP=true`` 或 ``SANIC_NO_UJSON=true``。
.. code:: shell
$ export SANIC_NO_UVLOOP=true
$ export SANIC_NO_UJSON=true
$ pip3 install --no-binary :all: sanic
.. note::
如果您在 Fedora 28 或更高版本的全新安装上运行,并且想要使用带有 ujson
依赖的 sanic
,请确保已安装 redhat-rpm-config
包。
Hello World 示例
.. code:: python
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 hello.app
轻松运行 Sanic。
.. code::
[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
.. code::
HTTP/1.1 200 OK
Connection: keep-alive
Keep-Alive: 5
Content-Length: 17
Content-Type: application/json
{"hello":"world"}
现在,让我们开始构建快速的应用程序吧!
最低 Python 版本为 3.8。如果您需要 Python 3.7 支持,请使用 v22.12LTS。
文档
用户指南、更新日志和 API 文档可在 sanic.dev <https://sanic.dev>
__ 找到。
问题和讨论
提出问题或加入对话 <https://community.sanicframework.org/>
__。
贡献
我们始终欢迎新的贡献。我们为 希望入门的人标记了一些问题 <https://github.com/sanic-org/sanic/issues?q=is%3Aopen+is%3Aissue+label%3Abeginner>
,并欢迎在 论坛上提出问题 <https://community.sanicframework.org/>
。请查看我们的 贡献指南 <https://github.com/sanic-org/sanic/blob/master/CONTRIBUTING.rst>
_。