コンテンツにスキップ

スターレット

✨ その輝く小さなAS GIフレーム。✨

Build StatusPackage version


ご紹介

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ライセンスに準拠したコードです。 入念な設計と製作。 — ⭐️ —