Zum Inhalt

mit Starlette

... dieser kleine, glänzende ASGI-Rahmen...

Build Status Package version


präsentiert

Starlette ist ein leichtgewichtiges ASGI-Framework/-Toolkit, das sich ideal zum Erstellen asynchroner Netzwerkdienste mit Python eignet.

Es ist produktionsreif und bietet Ihnen Folgendes:

  • Ein schlankes, weniger komplexes HTTP-Netzwerk-Framework.
  • WebSocket Unterstützung.
  • Aufgaben im Hintergrund des Prozesses.
  • Starten und Schließen von Ereignissen. Der Testclient von* basiert auf httpx.
  • CORS, GZip, statische Dateien, Streaming-Antworten.
  • Session und Cookie Unterstützung.
  • 100% Testabdeckung.
  • Codebasis für 100%-Kommentare.
  • Es gibt kaum noch eine feste Abhängigkeit.
  • mit asyncio und trio Hinten kompatibel.
  • Die Gesamtleistung für unabhängige Benchmarks ist hervorragend.

Forderung

Python 3.8 und höhere Versionen

Installiert

$ pip3 install starlette

Außerdem müssen Sie einen ASGI-Server wie uvicorn, daphne oder hypercorn installieren.

$pip3 install uvicorn für

Beispiel Beispiel

Beispiel. py:

von starlette. applications import Starlette
von starlette. responses import JSONResponse
von starlette. routing import Route


async def Homepage (Anfrage):
    Zurück zu JSONResponse ({'hello': 'world'})


Strg = Strg (debug = true, routes =[Bearbeiten]
    Route ('/', Webseite),
])

Anschließend wird die Applikation...

$uvicorn Beispiel: app

Für ein vollständigeres Beispiel, siehe hier.

Abhängigkeit

Starlette benötigt nur anyio, die folgenden Abhängigkeiten sind optional:

  • httpx-Erforderlich, wenn Sie TestClient verwenden möchten.
  • jinja2-Erforderlich, wenn Sie Jinja2Templates verwenden möchten.
  • python-multipart-Wenn Sie die Formularauflösung unterstützen möchten, müssen Sie dies mit request.form() tun.
  • itsdangerous-erforderlich für SessionMiddleware-Unterstützung.
  • pyyaml-Erforderlich für SchemaGenerator-Unterstützung.

Sie können all dies mit pip3 install starlette[full] installieren.

Framework oder Toolkit

Starlette wurde entwickelt, um sowohl als komplettes Framework als auch als ASGI-Toolkit verwendet zu werden, das Sie unabhängig von seinen Komponenten verwenden können.

from starlette. responses import plainTextResponse (englisch)


async def app (scope, receive, send):
    assert scope 'type']='http'.
    response = plainTextResponse ('Hello, world gamma ')(Übersetzung)
    Erhalte Antworten (Senden, Empfangen, Senden)

Führen Sie die app-Anwendung in example.py aus:

$uvicorn Beispiel : app
INFO : Startete Serverprozesse [ 11509 ]
Infos : Uvicorn Run aufhttp://127.0.0.1:8000(Ctrl + C zum Beenden)

Führen Sie uvicorn mit --reload aus , um das automatische Neuladen zu aktivieren , wenn sich der Code ändert .

Modularität .

Das modulare Design , auf dem Starlette basiert , erleichtert die Entwicklung wiederverwendbarer Komponenten , die von jedem ASGI-Framework gemeinsam genutzt werden können , was zu einem Ökosystem gemeinsamer Middleware und mountbarer Anwendungen führen sollte .

Saubere API-Trennung bedeutet auch , dass es einfacher ist , jede Komponente einzeln zu verstehen .


_ Starlette ist Code unter der BSD-Lizenz . Sorgfältig entworfen und produziert . — ⭐️ —