Sanic は、高速に動作するように作成されたPython 3.8 以降のWeb サーバーおよび Web フレームワークです。 Python 3.5 で追加されたasync/await
構文を使用できるようになり、コードがノンブロッキングで高速になります。
Sanic は ASGI にも準拠しているため、代替の ASGI Web サーバーを使用して展開できます。
GitHub のソースコード |ヘルプとディスカッション掲示板 |ユーザーガイド | Discord でチャットする
プロジェクトはコミュニティによってコミュニティのために維持されます。貢献は大歓迎です!
プロジェクトの目標は、構築、拡張、そして最終的には拡張が容易な、高パフォーマンスの HTTP サーバーを立ち上げて実行する簡単な方法を提供することです。
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 以降のクリーン インストールで実行している場合は、 ujson
依存関係でsanic
使用する場合に備えてredhat-rpm-config
パッケージがインストールされていることを確認してください。
from sanic import Sanicfrom sanic.response import jsonapp = 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] [情報] Goin' Fast @ http://127.0.0.1:8000 [2018-12-30 11:37:41 +0200] [13564] [情報] ワーカーを開始します [13564]
そして、それが機能していることを確認できます: curl localhost:8000 -i
HTTP/1.1 200 OK 接続: キープアライブ キープアライブ: 5 コンテンツの長さ: 17 コンテンツタイプ: application/json {"こんにちは世界"}
さあ、早速何かを作ってみましょう!
Python の最小バージョンは 3.8 です。 Python 3.7 のサポートが必要な場合は、v22.12LTS を使用してください。
ユーザー ガイド、変更ログ、API ドキュメントは sanic.dev にあります。
質問するか、会話に参加してください。
新しい貢献を常に嬉しく思っています。私たちは、これから始めようとしている人に適した問題をマークしており、フォーラムでの質問を歓迎します。貢献ガイドラインをご覧ください。