
✨ Dat glimmende kleine ASGI-raamwerk.✨
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
asyncioentriobackends. - 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 uTestClientwilt gebruiken.jinja2- Vereist als uJinja2Templateswilt gebruiken.python-multipart- Als je formulierparsing wilt ondersteunen, heb je het nodig metrequest.form().itsdangerous- Vereist voorSessionMiddlewareondersteuning.pyyaml- voorSchemaGeneratorVereist 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. _ — ⭐️ —