Ga naar inhoud

Release-opmerkingen

0.38.2

27 juli 2024

vast

  • gaat er niet vanuit dat alle routines __name__ hebben op routing.get_name()# 2648.

0.38.1

23 juli 2024

Verwijderd

  • Herstel "Ondersteuning toevoegen voor ASGI-pathsend-extensies" # 2649.

0.38.0

20 juli 2024

toegevoegd

  • staat het gebruik van memoryview toe in StreamingResponse en Response# 2576 en # 2577.
  • Wanneer in StaticFiles # 2583 Als de gevraagde bestandsnaam te lang is, stuur dan 404 in plaats van 500.

Wijzigen (of: wijzigen)

  • mislukt snel bij ongeldige Jinja2Template-instantiatieparameter # 2568.
  • Controleer de endpoint-handler slechts één keer asynchroon # 2536.

vast

  • voegt een goede synchronisatie toe aan WebSocketTestSession# 2597.

0.37.2

5 maart 2024

toegevoegd

  • Voeg bytes toe aan _RequestData type # 2510.

vast

  • Revert "Draai scope["client"] naar None op TestClient(# 2377)"# 2525.
  • Verwijder het verouderde app-argument dat is doorgegeven aan httpx.Client op de TestClient # 2526.

0.37.1

9 februari 2024

Vaste

  • Waarschuwing in plaats van te verhogen voor ontbrekende env-bestanden op Config # 2485 Ja hoor.

0.37.0

5 februari 2024

Toegevoegd

  • Ondersteunt de WebSocket Denial Response ASGI-extensie # 2041.

0.36.3

4 februari 2024

Vaste

  • Maken anyio.Event Over asynchrone context # 2459 Ja hoor.

0.36.2

3 februari 2024

Vaste

  • Upgrade python-multipart naar 0.0.7 13e5c26.
  • Vermijd dubbele tekensets op Content-Type # 2443.

0.36.1

23 januari 2024

Vaste

  • Controleer of "extensies" binnen bereik zijn voordat u de extensie # 2438 controleert.

0.36.0

22 januari 2024

toegevoegd

  • Ondersteuning toegevoegd voor ASGI pathsend Uitbreiding # 2435 Ja hoor.
  • Annuleren WebSocketTestSession Op sluiten # 2427 Ja hoor.
  • Verhogen WebSocketDisconnect Wanneer WebSocket.send() Uitzonderingen IOError # 2425 Ja hoor.
  • Verhogen FileNotFoundError Wanneer de env_file Parameters op Config Is niet geldig # 2422 Ja hoor.

0.35.1

11 januari 2024

vast

  • Stop met het gebruik van de verouderde parameter "methode" in FileResponse Binnenkant van StaticFiles # 2406 Ja hoor.
  • Maak typing-extensions weer optioneel # 2409.

0.35.0

11 januari 2024

toegevoegd

  • voegt *args toe aan Middleware en verbetert zijn type hint # 2381.

vast

  • Gebruik Iterable in plaats van Iterator op iterate_in_threadpool# 2362

veranderen

  • verwerkt root_path om de compatibiliteit met geïnstalleerde ASGI-applicaties en WSGI # 2400 te behouden.
  • veranderde scope["client"] in None op TestClient# 2377

0.34.0

16 december 2023

toegevoegd

  • gebruikt ParamSpec voor run_in_threadpool# 2375.
  • Voeg UploadFile.__repr__# 2360 toe.

vast

  • voegt URL 's correct samen op TestClient# 2376.
  • beschouwt zwakke ETags op StaticFiles# 2334.

verouderd

  • beëindigt de FileResponse(method=...) parameter # 2366.

0.33.0

1 december 2023

toegevoegd

  • voegt middleware# 2349 toe voor Route/WebSocketRoute.
  • voegt middleware# 2351 toe voor Router.

vast

  • Niet overschrijven "path" en "root_path" Toets # 2352.
  • stelt ensure_ascii=False op json.dumps() in voor WebSocket.send_json()# 2341.

0.32.0 post1

vrijdag 5 november 2023

vast

  • Terugvallen mkdocs-materiaal van 9.1.17 naar 9.4.7 # 2326.

0.32.0

maart 4, 2023

toegevoegd

  • stuurt reason# 2309 op WebSocketDisconnect.
  • voegt de domain parameter toe aan SessionMiddleware# 2280.

Veranderen; veranderen

  • erft van HTMLResponse in plaats van Response op _TemplateResponse# 2274.
  • herstelt de annotatie van het Response.render-type naar de0.31.0 staat # 2264.

0.31.1

26 augustus 2023

vast

  • corrigeert importfout # 2231 wanneer exceptiongroup niet beschikbaar is.
  • stelt de url_for globale variabele # 2230 in voor een aangepaste Jinja-omgeving.

0.31.0

24 juli 2023

toegevoegd

  • ondersteunt officieel Python 3.12 # 2214.
  • -ondersteuning AnyIO 4.0 # 2211.
  • Typ strikt geannoteerde Starlette (strikte modus op myPy)# 2180.

Vaste

  • Groepeer geen dubbele kopteksten op een enkele tekenreeks bij gebruik van TestClient # 2219.

0.30.0

13 juli 2023

Verwijderd

  • Drop Python 3.7 ondersteunt # 2178.

0.29.0

13 juli 2023

Toegevoegd

  • Voeg follow_redirects parameter toe aan TestClient # 2207.
  • Toevoegen __str__ Naar HTTPException en WebSocketException # 2181 Ja hoor.
  • Gebruikers waarschuwen bij gebruik lifespan Samen met on_startup/on_shutdown # 2193 Ja hoor.
  • Verzamel routes van Host Het OpenAPI-schema genereren # 2183 Ja hoor.
  • Toevoegen request Argument naar TemplateResponse # 2191 Ja hoor.

vast

  • Hou op body_stream In geval more_body=False Op BaseHTTPMiddleware # 2194 Ja hoor.

0.28.0

7 juni 2023

Gewijzigd

  • Hergebruik Request's body buffer voor call _ next in BaseHTTPMiddleware # 1692 Ja hoor.
  • Logica verplaatsen naar afhandeling van uitzonderingen Route # 2026 Ja hoor.

toegevoegd

  • voegt de env-parameter toe aan Jinja2Templates en beëindigt **env_options# 2159.
  • Voeg expliciet foutbericht # 2177 toe wanneer httpx niet is geïnstalleerd.

vast

  • staat het gebruik van de "naam" parameter op templates url_for()# 2127.

0.27.0

16 mei 2023

Deze release corrigeert een kwetsbaarheid voor paddoorgang in StaticFiles. U kunt het volledige beveiligingsbulletin bekijken: https://github.com/encode/starlette/security/advisories/GHSA-v5gw-mw7f-84px

toegevoegd

  • verkleint JSON WebSocket-gegevens met send_json, zie https://github.com/encode/starlette/pull/2128

vast

  • bestaan StaticFiles Op 1797de4 zal commonprefix Vervangen door commonpath ...
  • Belangrijke fouten converteren naar ModuleNotFoundError # 2135.
  • Corrigeer de inhoud van het RuntimeError-bericht in websockets # 2141.

0.26.1

13 maart 2023

vast

  • Herstel het type levensduur in Starlette # 2077 om de subklassen toe te staan.

0.26.0 post1

9 maart 2023

Vaste

  • Vervang de referentie van gebeurtenissen naar levensduur op de mkdocs.yml # 2072.

0.26.0

9 maart 2023

Toegevoegd

Gewijzigd

  • Wijzig url_for-handtekening om een URL-instantie # 1385 te retourneren.

Vaste

  • Sta "naam" -argumenten toe op url_for() en url_path_for() # 2050.

Verouderd

  • Afschaffing on_startup en on_shutdown Evenementen # 2070 Ja hoor.

0.25.0

14 februari 2023

Vaste

  • Beperk het aantal velden en bestanden bij het parseren van multipart/form-data op de MultipartParser 8c74c2c en # 2036.

0.24.0

6 februari 2023

toegevoegd

  • Laat StaticFiles symlinks # 1683 volgen.
  • Sta Request.form() toe als contextbeheerder # 1903.
  • Toevoegen size Attributen aan UploadFile # 1405 Ja hoor.
  • Voeg env_prefix-argument toe aan Config # 1990.
  • Sjablooncontextprocessors toevoegen # 1904 Ja hoor.
  • ondersteunt str en datetime op expires-parameters op de Response.set_cookie-methode # 1908.

Gewijzigd

  • Lazily heeft de middlewarestack # 2017 gebouwd.
  • Maak het file-argument dat vereist is voor UploadFile # 1413.
  • De foutopsporingsextensie gebruiken in plaats van de sjabloonextensie voor aangepaste reacties # 1991 Ja hoor.

vast

  • Vaste url parsing van ipv6 urls op URL.replace # 1965.

0.23.1

9 december 2022

vast

  • stopt alleen met het ontvangen van streams op body_stream als het lichaam leeg is op de BaseHTTPMiddleware # 1940.

0.23.0

5 december 2022

toegevoegd

  • Toevoegen headers Parameters voor de TestClient # 1966 Ja hoor.

verouderd

  • heeft Starlette en Router decorateur # 1897 afgeschaft.

vast

  • Fix-fout bij FloatConvertor reguliere expressies # 1973.

0.22.0

maart 17, 2022

Gewijzigd

  • omzeilt GZipMiddleware wanneer het antwoord Content-Encoding# 1901 bevat.

vast

  • van TestClient # 1953 Ongewenste queryparameters verwijderen unquote() ...
  • zorgt ervoor dat MutableHeaders._list eigenlijk een list# 1917 is. Importeer compatibiliteit van* met de volgende versie van AnyIO# 1936.

0.21.0

26 september 2022

Deze release vervangt de basis HTTP-clientzijde die wordt gebruikt op TestClient(requests :arrow_right:httpx), wat uw testsuite kan breken vanwege iets andere API 's. Om de migratie soepeler te laten verlopen, kunt u de bump-testclient-tool gebruiken.

Wijzigen (of: wijzigen)

  • Vervang in TestClient# 1376 requests door httpx

toegevoegd

  • voegt WebSocketException en ondersteuning toe voor WebSocket-uitzonderingshandlers # 1263.
  • Voeg middleware parameter toe aan Mount klasse # 1649.
  • ondersteunt officieel Python 3.11 # 1863.
  • Uitvoeren __repr__ Voor routeklassen # 1864 Ja hoor.

Vaste

  • Bug opgelost waarbij BackgroundTasks werd geannuleerd bij gebruik van BaseHTTPMiddleware en client losgekoppeld # 1715.

0.20.4

28 juni 2022

Vaste

  • Converter van pad verwijderen bij het genereren van OpenAPI-schema # 1648 Ja hoor.

0.20.3

10 juni 2022

Vaste

  • Revert "Laat StaticFiles symlinks volgen"# 1681.

0.20.2

7 juni 2022

vast

  • Vaste regressie op routepaden met dubbele punten # 1675.
  • Toestaan StaticFiles Symlinks volgen # 1337 Ja hoor.

0.20.1

28 mei 2022

vast

  • Verbeterde detectie van asynchrone callables # 1444 Ja hoor.
  • Stuur 400 (slecht verzoek) wanneer boundary ontbreekt # 1617.
  • Stuur 400 (Slecht verzoek) wanneer het veld "naam" ontbreekt op Content-Disposition Koptekst # 1643 Ja hoor.
  • Geen lege gegevens versturen naar StreamingResponse Op BaseHTTPMiddleware # 1609 Ja hoor.
  • Toevoegen __bool__ Dunder voor Secret # 1625 Ja hoor.

0.20.0

3 mei 2022

Verwijderd

0.19.1

22 april 2022

vast

  • Vaste gevolgtrekking van Route.name wanneer gemaakt met methoden # 1553.
  • Vermijd TypeError op websocket.disconnect als de code None # 1574 is.

verouderd

  • Afschaffing WS_1004_NO_STATUS_RCVD en WS_1005_ABNORMAL_CLOSURE In het voordeel van WS_1005_NO_STATUS_RCVD en WS_1006_ABNORMAL_CLOSURE, aangezien de vorige constanten niet overeenkwamen met de WebSockets specificaties # 1580 Ja hoor.

0.19.0

9 maart 2022

toegevoegd

  • Fouthandlers worden altijd uitgevoerd, zelfs als de fout optreedt bij een achtergrondtaak # 761 Ja hoor.
  • headers parameter toegevoegd aan HTTPException # 1435.
  • Interne reacties met 405-statuscode voegen een Allow-header in, zoals beschreven door RFC 7231 # 1436.
  • bestaan JSONResponse in content De parameter is nu vereist # 1431.
  • Add Aangepaste URL Converter Registratie # 1437.
  • voegt een parameter voor het verwijderen van inhoud toe aan FileResponse# 1266.
  • Voeg in Vereiste decorateur # 920 de volgende queryparameter toe samen met de oorspronkelijke verzoek-URL.
  • voegt raw_path toe aan de TestClient scope # 1445.
  • voegt de vakbondsoperator toe aan MutableHeaders# 1240.
  • Ontbrekende routegegevens weergeven op foutopsporingspagina # 1363.
  • wijzigt het vereiste versiebereik voor anyio in >=3.4.0,<5.0# 1421 en # 1460.
  • voegt typing-extensions>=3.10-vereiste toe - gebruik # 1475 alleen in versies lager dan Python 3.10.

vast

  • voorkomt dat BaseHTTPMiddleware fouten in StreamingResponse en geïnstalleerde applicatie # 1459 verbergt.
  • SessionMiddleware gebruikt standaard expliciete path=... in plaats van de ASGI "root _ path" # 1512.
  • Request.client Het voldoet nu aan ASGI-specificatie # 1462.
  • promootte KeyError al vroeg voor het missen van grenzen # 1349.

verouderd

  • Vernietig WSGIMiddleware ten gunste van a2wsgid # 1504.
  • Afschaffing run_until_first_complete # 1443 Ja hoor.

0.18.0

23 januari 2022

Toegevoegd

  • Standaard brokgrootte wijzigen van 4Kb naar 64Kb op FileResponse # 1345 Ja hoor.
  • Ondersteuning toevoegen voor functools.partial in WebSocketRoute # 1356 Ja hoor.
  • Voeg StaticFiles-pakketten toe met map # 1350.
  • Opties toestaan in omgeving Jinja2Templates # 1401 Ja hoor.
  • Sta HEAD-methode toe op HttpEndpoint # 1346.
  • Aanvullende headers accepteren op websocket.accept Boodschap # 1361 en # 1422 Ja hoor.
  • Voeg reason toe aan WebSocket sluit ASGI-gebeurtenis # 1417.
  • Toevoegen headers attribuut aan UploadFile # 1382.
  • Laat Content-Length-headers niet weg voor Content-Length: 0-gevallen # 1395.
  • Stel geen headers in voor reacties met 1xx, 204 en 304 statuscode # 1397.
  • SessionMiddleware.max_age accepteert nu None, dus cookies kunnen net zo lang meegaan als de browsersessie # 1387.

vast

  • Aanpassen hashlib.md5() Functie op FileResponse ETag generatie. De parameters usedforsecurity Vlag is ingesteld op False, als de vlag beschikbaar is op het systeem. Dit corrigeert een fout die is opgeworpen op systemen met FIPS ingeschakeld # 1366 en # 1410 Ja hoor.
  • Fix path_params type op url_path_for() methode d.w.z. zet str in Any # 1341.
  • Host negeert nu port bij het routeren van # 1322.

0.17.1

maart 17, 2021

vast

  • Fix IndexError in authenticatie requires wanneer verpakte functieargumenten zijn verdeeld tussen *args en **kwargs # 1335.

0.17.0

maart 4, 2021

toegevoegd

  • Response.delete_cookie accepteert nu dezelfde parameters als Response.set_cookie # 1228.
  • werkt de Jinja2Templates-constructor bij om PathLike # 1292 toe te staan.

vast

  • Fixed BadSignature uitzonderingsafhandeling in SessionMiddleware # 1264.
  • Verander HTTPConnection.__getitem__ retourtype van str naar typing.Any # 1118.
  • Wijzigen ImmutableMultiDict.getlist Type terugsturen van typing.List[str] Naar typing.List[typing.Any] # 1235 Ja hoor.
  • Behandel OSError-uitzonderingen op StaticFiles # 1220.
  • Vaste StaticFiles 404.html in HTML-modus # 1314.
  • Voorkom anyios. ExceptionGroup in foutweergaven onder een BaseHTTPMiddleware # 1262.

Verwijderd

  • Verwijder GraphQL ondersteuning # 1198.

0.16.0

19 juli 2021

toegevoegd

vast

  • starlette.websockets.WebSocket-instanties zijn nu hashable en worden vergeleken door identiteit # 1039
  • Een aantal oplossingen met betrekking tot het uitvoeren van taakgroepen in levensduur # 1213,# 1227

Verouderd / verwijderd

  • De methode starlette.templates.Jinja2Templates.get_env werd verwijderd # 1218
  • De ClassVar starlette.testclient.TestClient.async_backend is verwijderd, de backend is nu geconfigureerd met constructor kwargs # 1211
  • Het doorgeven van een Async-generatorfunctie of een generatorfunctie aan starlette.routing.Router(lifespan=) is verouderd. U moet uw levensduur verpakken in @contextlib.asynccontextmanager.# 1227 # 1110

0.15.0

23 juni 2021

Deze release brengt grote veranderingen aan in het onderliggende asynchrone deel van Starlette. Als gevolg hiervan vertrouwt Starlette nu op AnyIO en zijn er enkele kleine API-wijzigingen geweest. Een andere grote verandering in deze release is de beëindiging van ingebouwde GraphQL-ondersteuning.

toegevoegd

  • Starlette ondersteunt Trio nu als asynchrone runtime via AnyIO - # 1157.
  • TestClient.websocket_connect() Het moet nu worden gebruikt als contextmanager.
  • Voorlopige ondersteuning voor Python 3.10 - # 1201. Het compressieniveau gebruikt door* in GZipMiddleware is nu instelbaar - # 1128.

vast

Verschillende oplossingen voor CORSMiddleware door* . Zie # 1111, # 1112, # 1113, # 1199. * Verbeterd uitzonderingsbericht in geval van dubbele padparameternamen - # 1177. * RedirectResponse gebruikt nu quote-codering in plaats van quote_plus-codering in de Location-header om het gedrag in andere frameworks zoals Django - # 1164 beter te matchen. * In meer gevallen blijven uitzonderingsoorzaken nu behouden - # 1158. * In het geval van het koppelen van een applicatie, gebruiken sessiecookies nu het ASGI-rootpad - # 1147. * Een fout bij het ongeldig maken van de cache verholpen bij het verwijderen van statische bestanden onder bepaalde omstandigheden - # 1023. * verbetert het geheugengebruik van BaseHTTPMiddleware bij het verwerken van grote reacties - vast # 1012 door # 1157

Verouderd / Verwijderd

  • Ingebouwde GraphQL-ondersteuning via de GraphQLApp-klasse is verouderd en zal in een toekomstige release worden verwijderd. Zie # 619. GraphQL wordt niet ondersteund op Python 3.10.
  • De executor-parameter voor GraphQLApp is verwijderd. Gebruik in plaats daarvan executor_class.
  • De workers-parameter voor WSGIMiddleware is verwijderd. Dit heeft geen effect meer gehad sinds Starlette v0.6.3.

0.14.2

2 februari 2021

Vaste

  • Vaste ServerErrorMiddleware-compatibiliteit met Python 3.9.1/3.8.7 wanneer de foutopsporingsmodus is ingeschakeld -# 1132.
  • Vaste niet-gesloten socket ResourceWarning s bij gebruik van de TestClient met WebSocket-eindpunten - # 1132.
  • Verbeterde detectie van async Eindpunten verpakt in functools.partial Op Python 3.8 + - nummer 1106 Ja hoor.

0.14.1

maart 20, 2020

Verwijderd

  • UJSONResponse is verwijderd (deze wijziging was bedoeld om te worden opgenomen in 0.14.0). Zie de -documentatie voor het implementeren van reacties met aangepaste JSON-serialisatie -# 1074.

0.14.0

maart 8, 2020

toegevoegd

  • Starlette ondersteunt nu officieel Python 3.9.
  • In StreamingResponse, waardoor aangepaste asynchrone iterators zoals objecten uit het implementeren van klassen __aiter__ Ja hoor.
  • Toegestaan gebruik van functools.partial Async-handlers in Python-versies 3.6 en 3.7.
  • 418 I 'm A Theepot statuscode toegevoegd.

Gewijzigd

  • Maak taken van handler coroutines voordat u ze naar asyncio.wait verzendt.
  • Gebruik format_exception in plaats van format_tb in ServerErrorMiddleware's debug-reacties.
  • Wees soepeler met handler-argumenten bij het gebruik van de requires-decorateur.

0.13.8

  • Revert Queue(maxsize=1) fix voor BaseHTTPMiddleware middleware klassen en streaming reacties.

  • De StaticFiles-constructor staat nu pathlib.Path toe naast strings voor zijn directory-argument.

0.13.7

  • Vast hoog geheugengebruik bij gebruik BaseHTTPMiddleware Middleware-lessen en streaming-reacties.

0.13.6

  • 404 fouten opgelost met StaticFiles.

0.13.5

  • voegt ondersteuning toe voor Starlette(lifespan=...)-functies.
  • Krachtigere padverplaatsingscontrole in de StaticFiles-applicatie.
  • WSGI PATH _ INFO-codering repareren.
  • RedirectResponse accepteert nu optionele achtergrondparameters
  • Sta toe dat padroutes metakarakters voor reguliere expressie bevatten
  • Behandel de "body" van ASGI HTTP als een optionele sleutel.
  • Gebruik de threadpool niet om te schrijven om bestanden in het geheugen te uploaden.

0.13.0

  • Schakel om om de applicatieconfiguratie in initialisatiestijl te vergemakkelijken. Dit betekent dat u de decoratorstijl moet verlaten ten gunste van declaratieve routeringstabellen en middleware-definities.

0.12.12

  • lost request.url_for()-probleem op voor gevallen van "geneste installatie".

0.12.11

  • Fix request.url_for() bij gebruik van ASGI root_path.

0.12.1

  • toevoegen URL.include_query_params(**kwargs)
  • toevoegen URL.replace_query_params(**kwargs)
  • toevoegen URL.remove_query_params(param_names)
  • request.state Correct blijven bestaan in middleware.
  • voegt de request.scope-interface toe.

0.12.0

  • Schakel over naar ASGI 3.0.
  • Oplossingen voor CORS middleware.
  • Voegt StaticFiles(html=True) ondersteuning toe.
  • Vaste pad citeren in omleidingsreacties.

0.11.1

  • Voegt een request.state-interface toe voor het opslaan van willekeurige aanvullende informatie.
  • Ondersteuning voor het uitschakelen van GraphiQL met GraphQLApp(..., graphiql=False).

0.11.0

  • DatabaseMiddleware Wordt nu geschrapt ten gunste van databases
  • Sjablonen worden niet langer geconfigureerd in de toepassingsinstantie. Gebruik templates = Jinja2Templates(directory=...) en return templates.TemplateResponse('index.html', {"request": request})
  • Schema-generatie is niet langer gekoppeld aan de applicatie-instantie. Gebruik schemas = SchemaGenerator(...) en return schemas.OpenAPIResponse(request=request)
  • LifespanMiddleware Wordt geschrapt ten gunste van routergebaseerde levensduur.
  • Applicatie-instanties accepteren nu een routes Het argument, Starlette(routes=[...])
  • Schema generatie omvat nu bereden routes.

0.10.6

  • Voegt Lifespan routing component toe.

0.10.5

  • Zorg ervoor dat templating niet strikt vereist jinja2 worden geïnstalleerd.

0.10.4

  • -sjablonen worden nu onafhankelijk van de toepassingsinstantie geconfigureerd.templates = Jinja2Templates(directory=...). De bestaande API blijft op zijn plaats, maar is niet langer gedocumenteerd en zal te zijner tijd worden afgeschaft. Zie de sjabloondocumentatie voor meer details.

0.10.3

  • Verplaatst naar onafhankelijke databases-pakketten in plaats van DatabaseMiddleware. De bestaande API blijft op zijn plaats, maar is niet langer gedocumenteerd en zal te zijner tijd worden afgeschaft.

0.10.2

  • Laat expliciete poortnummers niet vallen bij omleidingen van HTTPSRedirectMiddleware Ja hoor.

0.10.1

  • MySQL database ondersteuning toevoegen.
  • Voeg host-gebaseerde routing toe.

0.10.0

  • WebSockets verzenden / ontvangen nu standaard JSON via tekstgegevensframes. Binaire framing met .send_json(data, mode="binary") en .receive_json(mode="binary").
  • GraphQLApp accepteert nu een executor_class-parameter, die moet worden gebruikt in plaats van de bestaande executor-parameter. Lost het probleem op van het instantiëren van de asynchrone actuator voordat de gebeurtenislus is ingesteld. Verwacht dat de executor-parameter wordt afgeschaft in de volgende middelgrote of grote release. De* -authenticatie en @requires-decorateur ondersteunen nu WebSocket-eindpunten.
  • MultiDict en ImmutableMultiDict Klasse in uvicorn.datastructures Beschikbaar in.
  • QueryParams wordt nu geïnstantieerd met behulp van *args, **kwargs-parameters in standaardwoordenboekstijl.

0.9.11

  • Sessiecookies bevatten nu de "verlopen" van de browser naast de bestaande ondertekende vervaltijd.
  • request.form() Geef nu een interface met meerdere woordenboeken terug.
  • Wanneer meerdere identieke sleutelitems verschijnen, is de implementatie van de queryparameter multi-dictionary nu .keys() , .values() en .items() Gedrag dat nauwkeuriger weerkaatst dict ...
  • gebruikt urlsplit in plaats van urlparse gedurende het hele proces.

0.9.10

  • ondersteunt @requires(...) bij klassenmethoden.
  • Pas URL escape toe om gegevens te vormen.
  • ondersteunt automatisch HEAD aanvragen.
  • heeft await request.is_disconnected() toegevoegd.
  • Geef de operationName door aan de GraphQL-uitvoerder.

0.9.9

  • voegt TemplateResponse toe.
  • Voeg CommaSeparatedStrings datatype toe.
  • Voegt BackgroundTasks toe voor meerdere taken.
  • Gemeenschappelijke subklassen voor Request en WebSocket, naar bvb. delen session Functionaliteit.
  • Exposeert adres op afstand met request.client.

0.9.8

  • request.database.executemany toevoegen.

0.9.7

  • Zorg ervoor dat AuthenticationMiddleware de berichten over de levensduur correct afhandelt.

0.9.6

  • voegt AuthenticationMiddleware en @requires()-decorateurs toe.

0.9.5

  • Ondersteuning ofwel str Of Secret voor SessionMiddleware(secret_key=...) Ja hoor.

0.9.4

  • Toevoegen config.environ Ja hoor.
  • Toevoegen datastructures.Secret Ja hoor.
  • Voeg datastructures.DatabaseURL toe.

0.9.3

  • Toevoegen config.Config(".env")

0.9.2

  • Optionele database ondersteuning toegevoegd.
  • Toevoegen request Naar de GraphQL-context.
  • Verberg wachtwoordcomponenten in URL.__repr__.

0.9.1

  • Opstart- / afsluitfouten goed afhandelen.

0.9.0

  • TestClient Kan nu gebruikt worden als contextmanager, in plaats van LifespanContext Ja hoor.
  • Lifespan wordt nu behandeld als middleware. Opstart- en afsluitgebeurtenissen zijn zichtbaar in de hele middleware-stack.

0.8.8

  • Betere ondersteuning voor API-schemageneratoren van derden.

0.8.7

  • Ondersteuning van chunked verzoeken met TestClient.
  • Opruimen asyncio taken goed met WSGIMiddleware.
  • -ondersteuning met TestClient binnen eindpunten, voor het bespotten van services.

0.8.6

  • Sessiecookies worden nu ingesteld op het rootpad.

0.8.5

  • Ondersteuning voor URL-converters.
  • ondersteunt HTTP 304-reacties in de cache van StaticFiles.
  • Los het probleem van het ontsnappen van tekens op in formuliergegevens.

0.8.4

  • Standaardtekst is leeg in het antwoord.

0.8.3

  • voegt de parameter "naam" toe aan @app.route().
  • URL reconstructie met behulp van de "Host" header.

0.8.2

statisch bestand

  • StaticFiles leest geen bestanden meer als reactie op HEAD-verzoeken.

0.8.1

Sjabloon

  • Standaard sjabloonconfiguratie toevoegen met Jinja2.

Het volgende is toegestaan:

App = Starlette (sjabloon _ map = "sjablonen")

@ app.route ('/')
Async def homepage (aanvraag):
    #`url_for` is beschikbaar in de sjabloon.
    Sjabloon = get _ template ('index.html')
    Inhoud = template.render (aanvraag = aanvraag)
    Retourneert HTMLResponse (inhoud)

0.8.0

uitzondering

  • voegt ondersteuning toe voor @app.exception_handler(404).
  • Zorg ervoor dat afgehandelde uitzonderingen door de middlewarestack niet als fouten worden behandeld.

gesprek middleware

  • Toevoegen max_age, en gebruik tijdstempel ondertekende cookies. Standaard twee weken.

Koekjes

  • Zorg ervoor dat cookies strikt HTTP-correct zijn.

StaticFiles

  • Controledirectory bestaat bij instantiatie.

0.7.4

Gelijktijdigheid

  • Toegevoegd starlette.concurrency.run_in_threadpool. Nu behandelt contextvar ondersteuning.

0.7.3

Routering

  • Voegt name= ondersteuning toe aan app.mount(). Hierdoor kan bijv.:app.mount('/static', StaticFiles(directory='static'), name='static').

0.7.2

Tussenwerk

  • Voegt ondersteuning toe voor @app.middleware("http") decorateurs.

Routering

  • Voeg "endpoint" toe aan ASGI scope.

0.7.1

Tracebacks verwijderen

  • Verbeterde foutopsporing traceback informatie & styling.

URL-routering

  • Ondersteunt gemounte URL-zoekopdrachten met "path =", bijv.url_for('static', path=...).
  • Ondersteunt geneste URL-zoekopdrachten, bijv.url_for('admin:user', username=...).
  • Ondersteuning voor omleidingsslashes toegevoegd.
  • Toegevoegd www redirect ondersteuning.

Achtergrond taken

  • Voegt ondersteuning voor achtergrondtaken toe aan FileResponse en StreamingResponse.

0.7.0

API Schema ondersteuning

  • app.schema_generator = SchemaGenerator(...) toevoegen.
  • Voegt de eigenschap app.schema toe.
  • OpenAPIResponse(...) toevoegen.

GraphQL routing

  • Laat vallen app.add_graphql_route("/", ...) Voor meer consequente app.add_route("/", GraphQLApp(...)) Ja hoor.

0.6.3

API voor routeren

  • Ondersteunt routing naar methoden.
  • Zorg ervoor dat url_path_for werkt met Mount ('/{some_path_params}').
  • Vaste router (default =) argument.
  • Ondersteunt herhaalde paden, zoals: @app.route("/", methods=["GET"]), @app.route("/", methods=["POST"])
  • Gebruik de standaard ThreadPoolExecutor voor alle synchronisatie-eindpunten.

0.6.2

SessieMiddleware

Paar toegevoegd request.session Ondersteuning, en SessionMiddleware ...

0.6.1

BaseHTTP middleware

Ondersteuning toegevoegd voor BaseHTTPMiddleware, dat een standaard verzoek / antwoord-interface biedt via reguliere ASGI-middleware.

Dit betekent dat u ASGI-middleware kunt schrijven terwijl u nog steeds op verzoek / responsniveau werkt, in plaats van ASGI-berichten rechtstreeks te verwerken.

Starlette.applicaties importeren vanuit Starlette
Vanaf starlette.middleware.base importeren BaseHTTPMiddleware


Klasse CustomMiddleware (BaseHTTPMiddleware):
    Aync def dispatch (zelf, verzoek, call _ next):
        Reactie = afwachten call _ next (verzoek)
        Response.headers ['Custom-Header'] = 'Voorbeeld'
        Geef reactie terug


Uitgever: App = Starlette ()
Toevoegen _ middleware (CustomMiddleware)

0.6.0

Pad _ params aanvragen

De grootste verandering in 0.6 is dat de eindpunthandtekening niet langer:

Async def func (verzoek: Verzoek, * * kwargs) - > Reactie

In plaats daarvan gebruiken we gewoon:

Async def func (aanvraag: Aanvraag) - > Reactie

De padparameter is beschikbaar in de vorm van request.path_params in het verzoek.

Dit is in tegenstelling tot de meeste Python-webframeworks, maar ik denk dat het uiteindelijk gedurende het hele proces consistenter zal zijn.

Aanvraag. url _ voor ()

Request en WebSocketSession ondersteunen nu URL-inversie met request.url_for(name, **path_params). Deze methode retourneert een volledig gekwalificeerde URL-instantie. De URL-instantie is een stringachtig object.

app.url _ path _ for () (Deze Engelse uitdrukking kan een specifieke functie- of methodenaam zijn op technisch gebied. In de Chinese context wordt de Engelse uitdrukking van de originele tekst soms behouden om nauwkeurigheid en professionaliteit te garanderen. Daarom behoudt de vertaling hier direct de Engelse vorm van de originele tekst)

De applicatie ondersteunt nu URL-padinversie met app.url_path_for(name, **path_params). Deze methode retourneert een exemplaar van URL met het pad en schema ingesteld. De URL-instantie is een stringachtig object dat, indien gedwongen tot een string, alleen het pad retourneert.

App. routing

De applicatie ondersteunt nu een .routes-parameter die een lijst met [Route|WebSocketRoute|Mount] es retourneert.

Routing, WebSocket routing, mount

Onderdelen op laag niveau voor Router komen nu overeen met de handtekeningen van @app.route(),@app.websocket_route() en app.mount().