
... dieser kleine, glänzende ASGI-Rahmen...
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
asyncioundtrioHinten 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 SieTestClientverwenden möchten.jinja2-Erforderlich, wenn SieJinja2Templatesverwenden möchten.python-multipart-Wenn Sie die Formularauflösung unterstützen möchten, müssen Sie dies mitrequest.form()tun.itsdangerous-erforderlich fürSessionMiddleware-Unterstützung.pyyaml-Erforderlich fürSchemaGenerator-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 . — ⭐️ —