Ga naar inhoud

Sterrenwacht

✨ Dat glimmende kleine ASGI-raamwerk.✨

Build Status Package version


introduceren

Starlette is een lichtgewicht ASGI-framework / toolkit die ideaal is voor het bouwen van asynchrone webservices in Python.

Het is klaar voor productie en biedt u het volgende:

  • Een lichtgewicht HTTP-netwerkraamwerk met lage complexiteit.
  • Ondersteuning voor WebSocket.
  • Achtergrondtaken in het proces.
  • Evenementen starten en afsluiten. De* -testclientzijde is gebouwd op httpx.
  • CORS, GZip, statische bestanden, streaming reacties.
  • Ondersteuning voor sessies en cookies.
  • 100% testdekking.
  • 100% geannoteerde codebase.
  • Er zijn weinig harde afhankelijkheden.
  • is compatibel met de asyncio en trio backends.
  • De algehele prestaties ten opzichte van onafhankelijke benchmarks zijn uitstekend.

aanvraag

Python 3.8 en hoger

installeren

$ pip3 install starlette

U moet ook een ASGI-server installeren, zoals uvicorn, daphne of hypercorn.

$pip3 installeren uvicorn

voorbeeld

example.py:

Starlette.applicaties importeren vanuit Starlette
Uit starlette.reacties importeren JSONResponse
Van starlette. routing importeren Route


Async def homepage (aanvraag):
    Geeft JSONResponse ({'hello': 'world'}) terug


App = Starlette (debug = Waar, routes = [
    Route ('/', startpagina),
])

Voer vervolgens de applicatie uit...

$uvicorn voorbeeld: app

Zie hier voor een completer voorbeeld.

afhankelijkheid

Starlette vereist alleen anyio en de volgende afhankelijkheden zijn optioneel:

  • httpx- Vereist als u TestClient wilt gebruiken.
  • jinja2- Vereist als u Jinja2Templates wilt gebruiken.
  • python-multipart- Als je formulierparsing wilt ondersteunen, heb je het nodig met request.form().
  • itsdangerous- Vereist voor SessionMiddleware ondersteuning.
  • pyyaml - voor SchemaGenerator Vereist voor ondersteuning.

U kunt al deze installeren met pip3 install starlette[full].

Kader of toolkit

Starlette is ontworpen om te worden gebruikt als een compleet raamwerk of als een ASGI-toolkit. U kunt elk van de componenten afzonderlijk gebruiken.

Vanaf starlette.reacties importeren PlainTextResponse


Async def app (bereik, ontvangen, verzenden):
    Toepassingsgebied ['type'] = = 'http'
    Reactie = PlainTextResponse ('Hallo, wereld!')
    In afwachting van reactie (scope, ontvangen, verzenden)

Voer de app-applicatie uit in example.py:

$uvicorn voorbeeld: app
INFO: Gestart serverproces [11509]
INFO: Uvicorn draait op http://127.0.0.1:8000 (Druk op CTRL + C om te stoppen)

Voer uvicorn uit met --reload om automatisch herladen mogelijk te maken wanneer de code verandert.

modularisatie

Het modulaire ontwerp van Starlette vergemakkelijkt het bouwen van herbruikbare componenten die kunnen worden gedeeld over elk ASGI-framework. Dit zou een ecosysteem van gedeelde middleware en monteerbare applicaties mogelijk moeten maken.

Schone API-scheiding maakt het ook gemakkelijker om elk onderdeel afzonderlijk te begrijpen.


_ Starlette is een code die de BSD licentieovereenkomst volgt. Goed ontworpen en geproduceerd. _ — ⭐️ —