Release-opmerkingen
0.38.2
27 juli 2024
vast
- gaat er niet vanuit dat alle routines
__name__hebben oprouting.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
memoryviewtoe inStreamingResponseenResponse# 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
bytestoe aan_RequestDatatype # 2510.
vast
- Revert "Draai
scope["client"]naarNoneopTestClient(# 2377)"# 2525. - Verwijder het verouderde
app-argument dat is doorgegeven aanhttpx.Clientop deTestClient# 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.EventOver asynchrone context # 2459 Ja hoor.
0.36.2
3 februari 2024
Vaste
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
pathsendUitbreiding # 2435 Ja hoor. - Annuleren
WebSocketTestSessionOp sluiten # 2427 Ja hoor. - Verhogen
WebSocketDisconnectWanneerWebSocket.send()UitzonderingenIOError# 2425 Ja hoor. - Verhogen
FileNotFoundErrorWanneer deenv_fileParameters opConfigIs niet geldig # 2422 Ja hoor.
0.35.1
11 januari 2024
vast
- Stop met het gebruik van de verouderde parameter "methode" in
FileResponseBinnenkant vanStaticFiles# 2406 Ja hoor. - Maak
typing-extensionsweer optioneel # 2409.
0.35.0
11 januari 2024
toegevoegd
- voegt
*argstoe aanMiddlewareen verbetert zijn type hint # 2381.
vast
- Gebruik
Iterablein plaats vanIteratoropiterate_in_threadpool# 2362
veranderen
- verwerkt
root_pathom de compatibiliteit met geïnstalleerde ASGI-applicaties en WSGI # 2400 te behouden. - veranderde
scope["client"]inNoneopTestClient# 2377
0.34.0
16 december 2023
toegevoegd
- gebruikt
ParamSpecvoorrun_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 voorRoute/WebSocketRoute. - voegt
middleware# 2351 toe voorRouter.
vast
- Niet overschrijven
"path"en"root_path"Toets # 2352. - stelt
ensure_ascii=Falseopjson.dumps()in voorWebSocket.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 opWebSocketDisconnect. - voegt de
domainparameter toe aanSessionMiddleware# 2280.
Veranderen; veranderen
- erft van
HTMLResponsein plaats vanResponseop_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
exceptiongroupniet beschikbaar is. - stelt de
url_forglobale 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_redirectsparameter toe aanTestClient# 2207. - Toevoegen
__str__NaarHTTPExceptionenWebSocketException# 2181 Ja hoor. - Gebruikers waarschuwen bij gebruik
lifespanSamen meton_startup/on_shutdown# 2193 Ja hoor. - Verzamel routes van
HostHet OpenAPI-schema genereren # 2183 Ja hoor. - Toevoegen
requestArgument naarTemplateResponse# 2191 Ja hoor.
vast
- Hou op
body_streamIn gevalmore_body=FalseOpBaseHTTPMiddleware# 2194 Ja hoor.
0.28.0
7 juni 2023
Gewijzigd
- Hergebruik
Request's body buffer voor call _ next inBaseHTTPMiddleware# 1692 Ja hoor. - Logica verplaatsen naar afhandeling van uitzonderingen
Route# 2026 Ja hoor.
toegevoegd
- voegt de
env-parameter toe aanJinja2Templatesen beëindigt**env_options# 2159. - Voeg expliciet foutbericht # 2177 toe wanneer
httpxniet 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
StaticFilesOp 1797de4 zalcommonprefixVervangen doorcommonpath... - 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
- Ondersteuning Levensduur staat # 2060, # 2065 en # 2064 Ja hoor.
Gewijzigd
- Wijzig
url_for-handtekening om eenURL-instantie # 1385 te retourneren.
Vaste
- Sta "naam" -argumenten toe op
url_for()enurl_path_for()# 2050.
Verouderd
- Afschaffing
on_startupenon_shutdownEvenementen # 2070 Ja hoor.
0.25.0
14 februari 2023
Vaste
- Beperk het aantal velden en bestanden bij het parseren van
multipart/form-dataop deMultipartParser8c74c2c en # 2036.
0.24.0
6 februari 2023
toegevoegd
- Laat
StaticFilessymlinks # 1683 volgen. - Sta
Request.form()toe als contextbeheerder # 1903. - Toevoegen
sizeAttributen aanUploadFile# 1405 Ja hoor. - Voeg
env_prefix-argument toe aanConfig# 1990. - Sjablooncontextprocessors toevoegen # 1904 Ja hoor.
- ondersteunt
strendatetimeopexpires-parameters op deResponse.set_cookie-methode # 1908.
Gewijzigd
- Lazily heeft de middlewarestack # 2017 gebouwd.
- Maak het
file-argument dat vereist is voorUploadFile# 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_streamals het lichaam leeg is op deBaseHTTPMiddleware# 1940.
0.23.0
5 december 2022
toegevoegd
- Toevoegen
headersParameters voor deTestClient# 1966 Ja hoor.
verouderd
- heeft
StarletteenRouterdecorateur # 1897 afgeschaft.
vast
- Fix-fout bij
FloatConvertorreguliere expressies # 1973.
0.22.0
maart 17, 2022
Gewijzigd
- omzeilt
GZipMiddlewarewanneer het antwoordContent-Encoding# 1901 bevat.
vast
- van
TestClient# 1953 Ongewenste queryparameters verwijderenunquote()... - zorgt ervoor dat
MutableHeaders._listeigenlijk eenlist# 1917 is. Importeer compatibiliteit van* met de volgende versie vanAnyIO# 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# 1376requestsdoorhttpx
toegevoegd
- voegt
WebSocketExceptionen ondersteuning toe voor WebSocket-uitzonderingshandlers # 1263. - Voeg
middlewareparameter toe aanMountklasse # 1649. - ondersteunt officieel Python 3.11 # 1863.
- Uitvoeren
__repr__Voor routeklassen # 1864 Ja hoor.
Vaste
- Bug opgelost waarbij
BackgroundTaskswerd geannuleerd bij gebruik vanBaseHTTPMiddlewareen 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
StaticFilessymlinks volgen"# 1681.
0.20.2
7 juni 2022
vast
- Vaste regressie op routepaden met dubbele punten # 1675.
- Toestaan
StaticFilesSymlinks volgen # 1337 Ja hoor.
0.20.1
28 mei 2022
vast
- Verbeterde detectie van asynchrone callables # 1444 Ja hoor.
- Stuur 400 (slecht verzoek) wanneer
boundaryontbreekt # 1617. - Stuur 400 (Slecht verzoek) wanneer het veld "naam" ontbreekt op
Content-DispositionKoptekst # 1643 Ja hoor. - Geen lege gegevens versturen naar
StreamingResponseOpBaseHTTPMiddleware# 1609 Ja hoor. - Toevoegen
__bool__Dunder voorSecret# 1625 Ja hoor.
0.20.0
3 mei 2022
Verwijderd
0.19.1
22 april 2022
vast
- Vaste gevolgtrekking van
Route.namewanneer gemaakt met methoden # 1553. - Vermijd
TypeErroropwebsocket.disconnectals de codeNone# 1574 is.
verouderd
- Afschaffing
WS_1004_NO_STATUS_RCVDenWS_1005_ABNORMAL_CLOSUREIn het voordeel vanWS_1005_NO_STATUS_RCVDenWS_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.
headersparameter toegevoegd aanHTTPException# 1435.- Interne reacties met
405-statuscode voegen eenAllow-header in, zoals beschreven door RFC 7231 # 1436. - bestaan
JSONResponseincontentDe 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_pathtoe aan deTestClientscope # 1445. - voegt de vakbondsoperator toe aan
MutableHeaders# 1240. - Ontbrekende routegegevens weergeven op foutopsporingspagina # 1363.
- wijzigt het vereiste versiebereik voor
anyioin>=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
BaseHTTPMiddlewarefouten inStreamingResponseen geïnstalleerde applicatie # 1459 verbergt. SessionMiddlewaregebruikt standaard explicietepath=...in plaats van de ASGI "root _ path" # 1512.Request.clientHet voldoet nu aan ASGI-specificatie # 1462.- promootte
KeyErroral 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.partialinWebSocketRoute# 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.acceptBoodschap # 1361 en # 1422 Ja hoor. - Voeg
reasontoe aanWebSocketsluit ASGI-gebeurtenis # 1417. - Toevoegen headers attribuut aan
UploadFile# 1382. - Laat
Content-Length-headers niet weg voorContent-Length: 0-gevallen # 1395. - Stel geen headers in voor reacties met 1xx, 204 en 304 statuscode # 1397.
SessionMiddleware.max_ageaccepteert nuNone, dus cookies kunnen net zo lang meegaan als de browsersessie # 1387.
vast
- Aanpassen
hashlib.md5()Functie opFileResponseETag generatie. De parametersusedforsecurityVlag is ingesteld opFalse, 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_paramstype opurl_path_for()methode d.w.z. zetstrinAny# 1341. Hostnegeert nuportbij het routeren van # 1322.
0.17.1
maart 17, 2021
vast
- Fix
IndexErrorin authenticatierequireswanneer verpakte functieargumenten zijn verdeeld tussen*argsen**kwargs# 1335.
0.17.0
maart 4, 2021
toegevoegd
Response.delete_cookieaccepteert nu dezelfde parameters alsResponse.set_cookie# 1228.- werkt de
Jinja2Templates-constructor bij omPathLike# 1292 toe te staan.
vast
- Fixed BadSignature uitzonderingsafhandeling in SessionMiddleware # 1264.
- Verander
HTTPConnection.__getitem__retourtype vanstrnaartyping.Any# 1118. - Wijzigen
ImmutableMultiDict.getlistType terugsturen vantyping.List[str]Naartyping.List[typing.Any]# 1235 Ja hoor. - Behandel
OSError-uitzonderingen opStaticFiles# 1220. - Vaste
StaticFiles404.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_envwerd verwijderd # 1218 - De ClassVar
starlette.testclient.TestClient.async_backendis 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
GZipMiddlewareis 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 voorGraphQLAppis verwijderd. Gebruik in plaats daarvanexecutor_class. - De
workers-parameter voorWSGIMiddlewareis 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
ResourceWarnings bij gebruik van deTestClientmet WebSocket-eindpunten - # 1132. - Verbeterde detectie van
asyncEindpunten verpakt infunctools.partialOp Python 3.8 + - nummer 1106 Ja hoor.
0.14.1
maart 20, 2020
Verwijderd
UJSONResponseis 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.partialAsync-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.waitverzendt. - Gebruik
format_exceptionin plaats vanformat_tbinServerErrorMiddleware'sdebug-reacties. - Wees soepeler met handler-argumenten bij het gebruik van de
requires-decorateur.
0.13.8
-
Revert
Queue(maxsize=1)fix voorBaseHTTPMiddlewaremiddleware klassen en streaming reacties. -
De
StaticFiles-constructor staat nupathlib.Pathtoe naast strings voor zijndirectory-argument.
0.13.7
- Vast hoog geheugengebruik bij gebruik
BaseHTTPMiddlewareMiddleware-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 ASGIroot_path.
0.12.1
- toevoegen
URL.include_query_params(**kwargs) - toevoegen
URL.replace_query_params(**kwargs) - toevoegen
URL.remove_query_params(param_names) request.stateCorrect 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
DatabaseMiddlewareWordt nu geschrapt ten gunste vandatabases- Sjablonen worden niet langer geconfigureerd in de toepassingsinstantie. Gebruik
templates = Jinja2Templates(directory=...)enreturn templates.TemplateResponse('index.html', {"request": request}) - Schema-generatie is niet langer gekoppeld aan de applicatie-instantie. Gebruik
schemas = SchemaGenerator(...)enreturn schemas.OpenAPIResponse(request=request) LifespanMiddlewareWordt geschrapt ten gunste van routergebaseerde levensduur.- Applicatie-instanties accepteren nu een
routesHet argument,Starlette(routes=[...]) - Schema generatie omvat nu bereden routes.
0.10.6
- Voegt
Lifespanrouting component toe.
0.10.5
- Zorg ervoor dat
templatingniet strikt vereistjinja2worden 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 vanDatabaseMiddleware. 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
HTTPSRedirectMiddlewareJa 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"). GraphQLAppaccepteert nu eenexecutor_class-parameter, die moet worden gebruikt in plaats van de bestaandeexecutor-parameter. Lost het probleem op van het instantiëren van de asynchrone actuator voordat de gebeurtenislus is ingesteld. Verwacht dat deexecutor-parameter wordt afgeschaft in de volgende middelgrote of grote release. De* -authenticatie en@requires-decorateur ondersteunen nu WebSocket-eindpunten.MultiDictenImmutableMultiDictKlasse inuvicorn.datastructuresBeschikbaar in.QueryParamswordt 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 weerkaatstdict... - gebruikt
urlsplitin plaats vanurlparsegedurende het hele proces.
0.9.10
- ondersteunt
@requires(...)bij klassenmethoden. - Pas URL escape toe om gegevens te vormen.
- ondersteunt automatisch
HEADaanvragen. - heeft
await request.is_disconnected()toegevoegd. - Geef de operationName door aan de GraphQL-uitvoerder.
0.9.9
- voegt
TemplateResponsetoe. - Voeg
CommaSeparatedStringsdatatype toe. - Voegt
BackgroundTaskstoe voor meerdere taken. - Gemeenschappelijke subklassen voor
RequestenWebSocket, naar bvb. delensessionFunctionaliteit. - Exposeert adres op afstand met
request.client.
0.9.8
request.database.executemanytoevoegen.
0.9.7
- Zorg ervoor dat
AuthenticationMiddlewarede berichten over de levensduur correct afhandelt.
0.9.6
- voegt
AuthenticationMiddlewareen@requires()-decorateurs toe.
0.9.5
- Ondersteuning ofwel
strOfSecretvoorSessionMiddleware(secret_key=...)Ja hoor.
0.9.4
- Toevoegen
config.environJa hoor. - Toevoegen
datastructures.SecretJa hoor. - Voeg
datastructures.DatabaseURLtoe.
0.9.3
- Toevoegen
config.Config(".env")
0.9.2
- Optionele database ondersteuning toegevoegd.
- Toevoegen
requestNaar de GraphQL-context. - Verberg wachtwoordcomponenten in
URL.__repr__.
0.9.1
- Opstart- / afsluitfouten goed afhandelen.
0.9.0
TestClientKan nu gebruikt worden als contextmanager, in plaats vanLifespanContextJa 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 behandeltcontextvarondersteuning.
0.7.3
Routering
- Voegt
name=ondersteuning toe aanapp.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
FileResponseenStreamingResponse.
0.7.0
API Schema ondersteuning
app.schema_generator = SchemaGenerator(...)toevoegen.- Voegt de eigenschap
app.schematoe. OpenAPIResponse(...)toevoegen.
GraphQL routing
- Laat vallen
app.add_graphql_route("/", ...)Voor meer consequenteapp.add_route("/", GraphQLApp(...))Ja hoor.
0.6.3
API voor routeren
- Ondersteunt routing naar methoden.
- Zorg ervoor dat
url_path_forwerkt 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().