
✨ その輝く小さなAS GIフレーム。✨
ご紹介
Starletteは、Pythonで非同期Webサービスを構築するのに最適な軽量のAS GIフレームワーク/ツールキットです。
それは生産の準備ができていて、あなたに以下を提供します:
- 軽量で複雑さの少ないHTTPネットワークフレームワーク。
- WebSocketのサポート。
- バックグラウンドタスクのプロセスです。
- イベントを開始および終了します。
- テストクライアントは
httpxに基づいて構築されています。 - CORS、GZip、静的ファイル、ストリーミング応答。
- セッションとクッキーのサポート。
- 100%のテストカバレッジ。
- 100%型コメントのコードベースです。
- ハード依存はほとんどない。
- は
asyncioとtrioのバックエンドと互換性があります。 - 独立した基準に対する全体的なパフォーマンスが優れています。
リクエスト
Python 3.8以上のバージョン
インストール
$ pip3 install starlette
また、uvicorn、daphne、hypercornなどのAS GIサーバーをインストールする必要があります。
$pip 3 uvicornをインストール
例
example.py:
Starlette. applicationからStarletteをインポート
JSONResponseをインポートします。
from starlette. routingインポートルート
async defホームページ(request):
return JSONResponse({'hello': 'world'})
app=Starlette(デバッグ=True,ルート=[
ルート('/',ホームページ),
])
アプリケーションを実行し、
$uvicornの例:アプリ
より完全な例については、こちらを参照してください。
依存関係
Starletteは anyio のみを必要とし、次の依存関係はオプションです。
httpx-TestClientを使用する場合は必須です。jinja2-Jinja2Templatesを使用する場合は必須です。python-multipart-フォーム解析をサポートしたい場合は、request.form()を使用してください。itsdangerous-SessionMiddlewareのサポートに必要です。pyyaml-SchemaGeneratorのサポートに必要です。
pip3 install starlette[full] を使用してこれらすべてをインストールできます。
フレームワークまたはツールキット
Starletteは、完全なフレームワークとしてもAS GIツールキットとしても使用できるように設計されています。そのコンポーネントのいずれかを単独で使用できます。
starletteからPlainTextResponseをインポート
async def app(スコープ、受信、送信):
assert scope['type']=='http'
response=PlainTextResponse('こんにちは、世界!')
await応答(スコープ、受信、送信)
example.py で app アプリケーションを実行する:
$uvicornの例:アプリ
INFO:サーバープロセスを開始[11509]
INFO: Uvicornがhttp://127.0.0.1:8000で実行されています(CTRL+Cを押して終了します)
--reload を使用してuvicornを実行し、コードが変更されたときに自動リロードを有効にします。
モジュール化
Starletteがベースとしているモジュラー設計は、任意のAS GIフレームワーク間で共有できる再利用可能なコンポーネントの構築を容易にします。これにより、ミドルウェアとマウント可能なアプリケーションを共有するエコシステムが可能になるはずです。
クリーンなAPI分離は、各コンポーネントを個別に理解しやすくすることも意味します。
StarletteはBSDライセンスに準拠したコードです。 入念な設計と製作。 — ⭐️ —