Versionshinweise
0.38.2
Der 27. Juli 2024
fixierte.
- geht nicht davon aus, dass alle Routinen
__name__aufrouting.get_name()#2648 haben.
0.38.1
Der 23. Juli 2024
bereits gelöscht
- Zurückgesetzt auf „ Unterstützung für ASGI pathsend-Erweiterungen hinzugefügt "#2649.
0.38.0
vom 20. Juli 2024
hinzugefügt wurde.
- erlaubt die Verwendung von
memoryviewinStreamingResponseundResponse#2576 und #2577. - Wenn der in
StaticFiles#2583 angeforderte Dateiname zu lang ist, wird ein 404 anstelle von 500 gesendet.
Änderung (bzw. Änderung)
- schlägt schnell mit ungültigem
Jinja2Template-Instanziierungsparameter #2568 fehl. - Überprüfen Sie, dass Endpunkt-Handler nur einmal asynchron #2536 sind.
fixierte.
- hat die richtige Synchronisation zu
WebSocketTestSession#2597 hinzugefügt.
0.37.2
vom 5. März 2024
hinzugefügt wurde.
- Add hinzufügen
byteszum_RequestDataDer Typ #2510.
fixierte.
- Die „ Umkehr "
scope["client"]zumNoneaufTestClientund #2377 #2525. - Remove deprecated
appargument passed tohttpx.Clienton theTestClientxphbagux xpg Dashttpx.Client-Argument wurde aufhttpx.Clientverschoben [#2526](](https://github.com/encode/starlette/pull/2526).
0.37.1
Februar 9, 2024
Fixierte
- Warnung vor dem Anstieg des Fehlens von Env
Config#2485.
0.37.0
am 5. Februar 2024
Hinzugefügt
- unterstützt die WebSocket-Denial-Response-ASGI-Erweiterung #2041.
0.36.3
Februar 4, 2024
Fixierte
- Create
anyio.Eventon async context #2459 erstellen.
0.36.2
- Februar 2024
Fixierte
- Das Upgrade
python-multipartzu0.0.7von 13e5c26. - Avoid Duplicate Charset auf
Content-Type#2443.)ist ein).
0.36.1
Januar 23, 2024
Fixierte
- Prüfen Sie, ob "Erweiterungen" vor dem Einchecken der Erweiterung #2438.
0.36.0
- Januar 2024
hinzugefügt wurde.
- Add-Unterstützung für ASGI
pathsendextension #2435. - cancel ein
WebSocketTestSessionauf Close #2427. - erhöht
WebSocketDisconnectwennWebSocket.send()IOErrorexcepts #2425. - erhöht
FileNotFoundError, wenn dieenv_file-Parameter aufConfignicht gültig sind #2422).
0.35.1
Januar 11, 2024
fixierte.
- Stoppt die Verwendung des deprecated "method"-Parameters im
FileResponse-Innenraum vonStaticFiles#2406.#2406).](xpbatix))). xphbasex ist ein[. - macht
typing-extensionsoptional wieder #2409.
0.35.0
Januar 11, 2024
hinzugefügt wurde.
- fügte
*argszuMiddlewarehinzu und verbesserte seinen Typhinweis #2381.
fixierte.
- verwendet
Iterableanstelle vonIteratoraufiterate_in_threadpool#2362
Veränderung
- verarbeitet
root_path, um die Kompatibilität mit installierten ASGI-Anwendungen und WSGI #2400 zu erhalten. - ändert
scope["client"]zuNoneunterTestClient#2377
0.34.0
vom 16. Dezember 2023
hinzugefügt wurde.
- Verwenden
ParamSpecVerwendet fürrun_in_threadpool#2375 von - wurde um
UploadFile.__repr__#2360 erweitert.
fixierte.
- konsolidierte URLs korrekt auf
TestClient#2376. - berücksichtigt schwache ETags auf
StaticFiles#2334.
bereits überholt.
- hat den
FileResponse(method=...)-Parameter #2366 eingestellt.
0.33.0
Der 1. Dezember 2023
hinzugefügt wurde.
- Jede einzelne
Route/WebSocketRoutehinzufügenmiddleware#2349 von - Jede einzelne
RouterHinzufügenmiddleware#2351 von
fixierte.
- Bitte nicht abdecken!
"path"und"root_path"Schlüsselanhänger #2352 - werden
ensure_ascii=FalseGeschaffen injson.dumps()nach oben, fürWebSocket.send_json()und #2341
0.32.0.post1
Der 5. November 2023
fixierte.
- Fallback von mkdocs-material von 9.1.17 auf 9.4.7 #2326.
0.32.0
Der 4. November 2023
hinzugefügt wurde.
- in der
WebSocketDisconnectnach oben senden.reason#2309 von - fügt den
domain-Parameter zuSessionMiddleware#2280 hinzu.
Änderung; Änderung; Änderung
- wurde von
HTMLResponseanstelle vonResponseauf_TemplateResponse#2274 geerbt. - stellt den
Response.render-Typ-Kommentar auf seinen Status #2264 vor 0.31.0 zurück.
0.31.1
vom 26. August 2023
fixierte.
- Reparieren als
exceptiongroupImportfehler #2231, wenn nicht verfügbar. - Einrichtung einer benutzerdefinierten Jinja-Umgebung
url_forDie globale Variable #2230.
0.31.0
Der 24. Juli 2023
hinzugefügt wurde.
- unterstützt offiziell Python 3.12 #2214.
- unterstützt AnyIO 4.0 #2211.
- Strictly type annotate Starlette (strikter Modus auf mypy)#2180).
Fixierte
- Don't group duplizierte Köpfe auf einem einzelnen String bei Verwendung des
TestClient#2219.
0.30.0
- Juli 2023 und
Entfernt
- Unterstützung für Drop Python 3.7 #2178.
0.29.0
vom 13. Juli 2023
Hinzugefügt
- Add
follow_redirectsParameter zuTestClient[#2207](https://github.com/encode/starlette/pull/2207](. xphcenoxix #2207](](https://github.com/encode/starlette/pull/2207) ist ein Muss. - add hinzufügen
__str__zuHTTPExceptionundWebSocketException#2181. - Warnung vor Benutzern beim Verwenden
lifespanZusammen miton_startup/on_shutdown#2193. - Collect routes von
Hostbis zur Erzeugung des OpenAPI-Schemas #2183. - Add
requestArgument zuTemplateResponse#2191).
fixierte .
- Stop
body_streamim Fallmore_body=FalseaufBaseHTTPMiddleware#2194.
0.28.0
7 . Juni 2023 und
verändert hat
- Reuse
Request's body buffer für call_next inBaseHTTPMiddleware#1692. - Move Exception Handling Logik auf
Route#2026.[#2026https://github.com/encode/starlette/pull/2026https://github.com/encode/starlette/pull/2026x).https://github.com/encode/starlette/pull/2026ist ein weiteres Produkt von[.
hinzugefügt wurde .
- werden
envParameter hinzufügenJinja2TemplatesIn und im Stich lassen**env_options#2159 natürlich - hat die explizite Fehlermeldung #2177 hinzugefügt , wenn
httpxnicht installiert ist .
fixierte .
- erlaubt die Verwendung des " name " - Arguments auf
templates url_for()#2127 .
0.27.0
Der 16 . Mai 2023
In diesem Release wurde die Sicherheitslücke " Path Traversal " in StaticFiles behoben , die Sie im vollständigen Sicherheitsbulletin nachlesen können : https://github.com/encode/starlette/security/advisories/GHSA-v5gw-mw7f-84px .
hinzugefügt wurde .
- verkleinert JSON-WebSocketdaten mit
send_jsonhttps://github.com/encode/starlette/pull/2128
fixierte .
- im
StaticFilesNach 1797 de 4 wurdecommonprefixErsetzt durchcommonpath。 - ImportErrors wird in ModuleNotFoundError #2135 konvertiert .
- Der Inhalt der RuntimeError-Meldung wurde in websockets #2141 korrigiert .
0.26.1
Der 13 . März 2023
fixierte .
- Fixiert den Typ von Lifespan in Starlette #2077 , um seine Unterklassen zu ermöglichen .
0.26.0.post1
- März 2023
Fixierte
- Verweis von Ereignissen zu Leben auf die mkdocs. yml #2072.
0.26.0
- März 2023
Hinzugefügt
-
- Unterstützung Der Lifespan State #2060, #2065 und #2064.
verändert hat
- Veränderungen
url_forRückgabewert AURLDie instance #1385.
Fixierte
- "Name"-Argument
url_for()undurl_path_for()#2050.
Depreziert
- Deprecate
on_startupundon_shutdownevents #2070).
0.25.0
Februar 14, 2023
Der Fix
- Limit die Anzahl der Felder und Dateien beim Parken
multipart/form-dataauf TheMultipartParserBezeichnung 8c74c2c und #2036.
0.24.0
Februar 6, 2023
hinzugefügt wurde.
- Allow
StaticFilesto follow symlinks #1683.StaticFilesXphdix[Xphdix. xphdix[Xphdix[Xphdix ist ein sehr guter Xphdix-Computer. - Allow
Request.form()als Context-Manager #1903. sizeAttribute zuUploadFilehinzufügen #1405.- Add
env_prefixargument zuConfig#1990 von 1990. - Add template context processors #1904.)https://github.com/encode/starlette/pull/1990. ). .). . ist ein Dateisystem.
- Unterstützung
strunddatetimeaufexpiresParameter auf derResponse.set_cookieDie Methode #1908.
verändert hat
- Lazily hat den Middleware-Stack #2017 gebaut.
- Das
fileArgument muss aufUploadFile#1413ist ein - Verwenden Sie die Debug-Erweiterung im Kundenreaktions-Template-Erweiterung #1991.
fixierte.
- Fix URL Parsing von IPv6 URLs auf
URL.replace#1965.)#1965).](https://github.com/encode/starlette/pull/1965)).)). xphdirax)))1965 Xphdirax](ist ein sehr guter Name.
0.23.1
Dezember 9, 2022.
fixierte.
- Nur stoppen Sie den Strom auf
body_streamWenn der Körper leer istBaseHTTPMiddleware#1940.
0.23.0
- Dezember 2022
hinzugefügt wurde.
- add hinzufügen
headersParameter für dieTestClient#1966.
bereits überholt
- stellt
StarletteundRouterDecorator #1897 ein.
fixierte.
- hat Fehler #1973 für reguläre Ausdrücke in
FloatConvertorbehoben.
0.22.0
vom 17. November 2022
verändert hat.
- umgeht
GZipMiddleware, wenn die AntwortContent-Encoding#1901 enthält.
fixierte.
- entfernt unerwünschte
unquote()aus dem Abfrageparameter aufTestClient#1953. - Sicherstellen
MutableHeaders._listEigentlich ist es einelist#1917 von Importkompatibilität von* mit der nächsten Version vonAnyIO#1936.
0.21.0
vom 26. September 2022
Diese Version ersetzt den TestClient Der verwendete HTTP-Client ( requests :arrow_right: httpx Da die APIs für diese Clients leicht unterschiedlich sind, kann Ihre Testsuite unterbrochen werden, damit die Migration reibungslos verläuft, wie Sie sie verwenden können. bump-testclient Werkzeuge.
Änderung (bzw. Änderung)
- in
TestClient#1376 ersetztrequestsdurchhttpx
hinzugefügt wurde.
- Add
WebSocketExceptionand support for WebSocket-Ausschlusshandler #1263.). - Add
middlewareParameter zurMountKlasse #1649. - Offizielle Unterstützung für Python 3.11 #1863.
- Verbesserung
__repr__für Route Classes #1864.
Fixierte
- Fix Bug auf Which
BackgroundTasksKann nicht verwendet werden, wennBaseHTTPMiddlewareund Client disconnected #1715.
0.20.4
vom 28. Juni 2022
Fixierte
- Remove converter from path when generating OpenAPI-Schema (Konverter vom Pfad entfernen beim Generieren des OpenAPI-Schemas) #1648.
0.20.3
Juni 10, 2022 sein.
Fixierte
- Rückblende „ Allow "
StaticFilesFolgen Sie Symlinks #1681.
0.20.2
vom 7. Juni 2022
fixierte.
0.20.1
- Mai 2022 oder
fixierte.
- Improve Detection of async c-callables #1444.* Improve Detection of async c-callables [#1444](](https://github.com/encode/starlette/pull/1444[.
- Send 400 (Bad Request) when (Schlechter Aufruf)
boundaryvermisst wird #1617. - Send 400 (Bad Request) when missing "name" field on (Schlechter Aufruf)
Content-DispositionDer Header #1643. - Senden Sie keine leeren Daten an
StreamingResponseaufBaseHTTPMiddleware#1609. - Add hinzufügen
__bool__Dunst fürSecret#1625.
0.20.0
Der 3. Mai 2022
Entfernt
0.19.1
vom 22. April 2022
fixierte.
- -Fix-Referenz von
Route.namebeim Erstellen von Methoden #1553. - weiter Avoid
TypeErroraufwebsocket.disconnectWenn der CodeNone#1574.
überholt sind.
- Deprecate
WS_1004_NO_STATUS_RCVDundWS_1005_ABNORMAL_CLOSUREim Favor vonWS_1005_NO_STATUS_RCVDundWS_1006_ABNORMAL_CLOSURE, als die vorherigen Konstanten nicht auf die WebSockets Specs) #1580.)ist ein
0.19.0
- März 2022
hinzugefügt wurde.
- -Error-Handler wird immer laufen, auch wenn der Fehler auf einem Hintergrundtask passiert #761.
headersParameter zuHTTPExceptionhinzufügen #1435.[ist ein- Interne Reaktionen mit
405Statuscode eingearbeitetAllowHeader, wie beschrieben Nach RFC 7231 #1436. - in der
JSONResponseinnerhalb von.contentParameter sind jetzt erforderlich #1431. - Fügen Sie einen benutzerdefinierten URL-Konverter Registrierung #1437.
- fügt dem
FileResponse#1266 ein Content-Disposing-Typ-Argument hinzu. - Fügen Sie im Bedarfsdekorator #920 den nächsten Abfrageparameter zusammen mit der ursprünglichen Anforderungs-URL hinzu.
- fügt
raw_pathzumTestClient-Bereich #1445 hinzu. - Der gemeinsame Betreiber wird hinzugefügt.
MutableHeadersIn der #1240 - Die fehlenden Routendetails werden auf der Debugging-Seite #1363 angezeigt.
- ändert den erforderlichen Versionsbereich von
anyioauf>=3.4.0,<5.0#1421 und #1460. - Fügt die
typing-extensions>=3.10-Anforderung hinzu-#1475 nur in Versionen vor Python 3.10.
fixierte.
- verhindert, dass
BaseHTTPMiddlewareden FehlerStreamingResponseund die installierte Anwendung #1459 versteckt. SessionMiddlewareverwendet den explizitenpath=...-Code anstelle des Standard-ASGI "root_path"#1512.Request.clientErfüllt jetzt die ASGI-Norm #1462.- Erheben Sie früh gegen Missing Frontier #1349
KeyError。
bereits überholt
0.18.0
- Januar 2022
Hinzugefügt
- Change-default-Chunk-Größe von 4Kb auf 64Kb
FileResponse#1345. - Add Support für
functools.partialinWebSocketRoute#1356.[#1356)ist ein -
StaticFiles-Pakete mit Verzeichnis #1350.
- Umweltfreundliche Optionen in
Jinja2Templates#1401. - Allow HEAD Methode auf
HttpEndpoint#1346.)ist ein - Weitere Header finden Sie hier
websocket.acceptBotschaft #1361 und #1422. - add hinzufügen
reasonzuWebSocketSchließen ASGI Event #1417. - Headers-Attribute hinzufügen
UploadFile#1382. - Don't Omit
Content-LengthHeader fürContent-Length: 0Cases sind #1395. - Don't set headers for responses with 1xx, 204 and 304 status code #1397.
SessionMiddleware.max_ageJetzt AccountsNoneSo kann ein Cookie so lange dauern wie die Browsersitzung #1387.
fixierte.
- Der Tweak
hashlib.md5()Die Funktion onFileResponseETag Generation: Der ParameterusedforsecurityDie Fahne wird gesetztFalseDiese fixe einen fehler auf diesem system verursacht. mit FIPS Enabled wird #1366 und #1410. - Fix
path_paramsTyp aufurl_path_for()Methode i.e. turnstrintoAny#1341.)ist ein Hostjetzt ignoresportauf Routing #1322.
0.17.1
- Dezember 2021
fixierte.
- Der Fix
IndexErrorin der Authentifizierungrequireswhen Wrapped Function Argumente sind zwischen verteilt*argsund**kwargs#1335.
0.17.0
vom 4. November 2021
hinzugefügt wurde.
Response.delete_cookieSie wenden sich an dieselben Parameter wieResponse.set_cookie#1228.- aktualisiert den
Jinja2Templates-Konstruktor auf allowPathLike#1292.[ist ein
fixierte.
- Fix BadSignature Exception Handling bei SessionMiddleware #1264.
- Wechseln Sie den
HTTPConnection.__getitem__Rückgabetyp vonstrnachtyping.Any#1118.)ist eine - Ändern des
ImmutableMultiDict.getlist-Rückgabetyps vontyping.List[str]nachtyping.List[typing.Any]#1235. - Die Handle
OSErrorAusnahmen beimStaticFiles#1220. - Fix
StaticFiles404.html im HTML-Modus #1314. - ExceptionGroup in error views under a BaseHTTPKiddleware ExceptionGroup in Fehler Ansichten unter einer BaseHTTPKiddleware #1262.
Entfernt
- GraphQL Unterstützung entfernen #1198.
0.16.0
vom 19. Juli 2021
hinzugefügt wurde.
- Hinzugefügt Der Encode Funding-Option auswählen #1219
fixierte.
starlette.websockets.WebSocketDie Instanzen sind jetzt hashable und kompatibel mit Identitäten #1039- Eine Anzahl von FIX im Zusammenhang mit laufenden Task-Gruppen im Leben #1213, #1227
Heruntergeladen/entfernt.
- Die Methode
starlette.templates.Jinja2Templates.get_envwurde entfernt #1218 - The ClassVar
starlette.testclient.TestClient.async_backendwurde entfernt, das Backend wird jetzt mit Konstruktor kwargs konfiguriert #1211) - Eine Async-Generator-Funktion oder eine Generator-Funktion verwenden
starlette.routing.Router(lifespan=)Du solltest dein Leben ruinieren. →@contextlib.asynccontextmanager. #1227 #1110
0.15.0
vom 23. Juni 2021
Aus diesem Grund ist Starlette jetzt auf AnyIO angewiesen und es gibt einige kleinere API-Änderungen Eine weitere wichtige Änderung in dieser Version ist die Einstellung der integrierten GraphQL-Unterstützung.
hinzugefügt wurde.
- Starlette unterstützt jetzt Trio als asynchrone Laufzeit über AnyIO-#1157.
TestClient.websocket_connect()Sie müssen nun als Download-Manager verwendet werden- Vorläufige Unterstützung für Python 3.10-#1201.
Der Komprimierungsgrad, der von* in
GZipMiddlewareverwendet wird, ist jetzt einstellbar-#1128.
fixierte.
Einige Korrekturen an der CORSMiddleware wurden von* unter #1111,#1112,#1113,#1199 vorgenommen.
* Verbessert die Ausnahmemeldung bei wiederholten Pfadparameternamen-#1177.
* RedirectResponse verwendet jetzt die quote-Codierung anstelle der quote_plus-Codierung im Location-Header, um das Verhalten in anderen Frameworks wie Django besser abzugleichen-#1164.
* In mehr Fällen ist die Ausnahmeursache jetzt erhalten geblieben-#1158.
* Wenn die Anwendung eingebunden ist, verwendet der Sitzungscookie nun den ASGI-Stammpfad-#1147.
* Ein Fehler im Cache beim Löschen statischer Dateien in bestimmten Situationen wurde behoben-#1023.
* verbessert die Speicherauslastung von BaseHTTPMiddleware bei der Verarbeitung großer Antworten-behoben durch #1157
gelöscht/gelöscht
- Built-in GraphQL unterstützt durch die
GraphQLAppKlassen wurden unterdrückt und werden in einem zukünftigen Release entfernt. #619 GraphQL wird in Python 3.10 nicht unterstützt. - Die
executorParameter fürGraphQLAppentfernt wurde. benutzt.executor_classstatt. - Die
workersParameter zumWSGIMiddlewareDas hatte seit Starlette v0.6.3 keine Wirkung mehr.
0.14.2
Februar 2, 2021
Fixierte
- Fixed
ServerErrorMiddleware-Kompatibilität mit Python 3.9.1/3.8.7 when debug mode is enabled-#1132. - Fixed Unclosed Socket
ResourceWarningbeim Verwenden desTestClientmit WebSocket-Endpunkten-#1132. - verbesserte Erkennung von
async-Endpunkten wurde infunctools.partialauf Python 3.8 +-#1106).
0.14.1
vom 9. November 2020
Entfernt
UJSONResponseEs wurde entfernt (diese Änderung wurde angekündigt, um in 0.14.0 integriert zu werden). Die Dokumentation for how to implement responses using custom JSON serialization-wie kann ich mit Hilfe von JSON-Serialisierung antworten #1074.
0.14.0
Der 8. November 2020
hinzugefügt wurde.
- Starlette unterstützt nun offiziell Python 3.9.
- In
StreamingResponse, allow custom async iterator such as objects from classes implementing__aiter__.__aiter__ist ein Async-Iterator, der Objekte von Klassen zur Implementation von__aiter__verwendet. - Allow Usage of
functools.partialasync handlers in den Python-Versionen 3.6 und 3.7. - Add 418 Ich bin ein Teapot-Statuscode.
verändert hat
- Create tasks from handler coroutines, bevor sie an
asyncio.waitsenden. - Benutzung
format_exceptionAußer vonformat_tbimServerErrorMiddlewareDas SdebugAntworten. - wird leichter mit Handler-Argumenten, wenn Sie den
requires-Decorator verwenden.
0.13.8
-
Revert
Queue(maxsize=1)fix fürBaseHTTPMiddlewaremiddleware classes und streaming responses. -
Der
StaticFilesKonstruktor jetzt erlaubtpathlib.Pathzusätzlich zu Strings für SiedirectoryDas Argument.
0.13.7
- Fix High Memory Usage beim Verwenden von
BaseHTTPMiddlewareMiddleware Klassen und Streaming-Antworten.
0.13.6
- Fix 404 Fehler mit
StaticFiles.
0.13.5
- fügt Unterstützung für die
Starlette(lifespan=...)-Funktion hinzu. - Führen Sie eine robustere Pfadüberprüfungen in der StaticFiles-Anwendung durch.
- Die WSGI PATH_INFO-Codierung wurde behoben.
- RedirectResponse akzeptiert jetzt einen optionalen background Parameter.
- Zulassen, dass Routen reguläre Ausdrücke enthalten.
- Betrachten Sie den "Körper" von ASGI HTTP als optionalen Schlüssel.
- Verwenden Sie den Threadpool nicht zum Schreiben von hochgeladenen Dateien in den Speicher.
0.13.0
- Der Wechsel von Ort zu Ort, um die App-Konfiguration im Initialisierungsstil zu erleichtern, bedeutet, den Dekorationsstil zugunsten deklarativer Routingtabellen und Middleware-Definitionen aufzugeben.
0.12.12
- behebt
request.url_for()-Probleme bei "verschachtelten Installationen".
0.12.11
- Repariert
request.url_for(), wenn ASGIroot_pathverwendet wird.
0.12.1
- Hinzufügen
URL.include_query_params(**kwargs) - hinzufügen
URL.replace_query_params(**kwargs) - Hinzufügen
URL.remove_query_params(param_names) request.stateDie richtige Persistenz in der Mitte.- fügt die
request.scope-Schnittstelle hinzu.
0.12.0
- Umstellung auf ASGI 3.0.
- Reparatur der CORS-Middleware.
- Add hinzufügen
StaticFiles(html=True)Unterstützung. - Fix path quoting in redirect responses.
0.11.1
- Add
request.stateinterface zum Speichern zusätzlicher arbiträrer Informationen. - Support Disabling GraphiQL mit
GraphQLApp(..., graphiql=False).
0.11.0
DatabaseMiddlewareJetzt ist es in der Gunst desdatabases- Templates sind nicht länger auf der Anwendungsinstanz konfiguriert.
templates = Jinja2Templates(directory=...)undreturn templates.TemplateResponse('index.html', {"request": request}) - Die Schema-Generation wird nicht länger auf die Anwendungsinstanz angewendet.
schemas = SchemaGenerator(...)andreturn schemas.OpenAPIResponse(request=request) LifespanMiddlewareEr leidet unter dem Problem des Routers-basierend auf dem Lifespan Handling.- Application Instances jetzt als
routesArgument,Starlette(routes=[...]) - Heute umfasst die Modellgeneration mounted routes.
0.10.6
- Add
LifespanRouting-Komponente.
0.10.5
- Ensure
templatingerfordert nicht zwingendjinja2installiert zu werden.
0.10.4
- Templates werden jetzt unabhängig von der Anwendungsinstanz konfiguriert.
templates = Jinja2Templates(directory=...)Existing api remains in place, but is no longer documented, and will be deprecated in due course. siehe die template-Dokumentation für weitere Details.
0.10.3
- wird in das unabhängige
databases-Paket verlegt, das vonDatabaseMiddlewareinstalliert wurde. Existing api remains in place, but is no longer documented, and will be deprecated in due course.
0.10.2
- Don't Drop Explicit Port Numbers on Redirects from nicht auf die Portnummer klicken
HTTPSRedirectMiddleware.
0.10.1
- Unterstützung für MySQL-Datenbanken wurde hinzugefügt.
- Fügen Sie eine Route basierend auf dem Hauptcomputer hinzu.
0.10.0
- WebSockets sendet/empfängt nun standardmäßig JSON über Textdatenrahmen für binäre Frames mit
.send_json(data, mode="binary")und.receive_json(mode="binary"). GraphQLAppAkzeptieren Sie jetzt eineexecutor_classDiese Parameter sollten verwendet werden, anstatt die vorhandenenexecutorDie Parameter lösen das Problem der Instanziierung von asynchronen Aktuatoren, die erwartet werden, bevor die Ereignisschleife eingerichtet wird.executorParameter werden in der nächsten mittleren oder größeren Version veraltet sein. Die -Authentifizierung und@requires-Dekoratoren unterstützen jetzt WebSocket-Endpunkte. Die KlassenMultiDictundImmutableMultiDictsind inuvicorn.datastructuresverfügbar.QueryParamswird jetzt mit dem*args, **kwargs-Parameter im Standarddictionary-Stil instanziiert.
0.9.11
- Session-Cookies enthalten nun neben der bestehenden signierten Ablaufzeit auch „ expires "des Browsers.
request.form()Gibt nun eine Multidictionary-Schnittstelle zurück.- Wenn mehrere identische Schlüsselelemente vorhanden sind, werden die Abfrageparameter Multi-Dictionary-Implementierungen jetzt für
.keys()、.values()und.items()Verhalten genauer widerspiegeln kann.dict。 - während des gesamten Prozesses verwendet.
urlsplitstatt vielmehrurlparse。
0.9.10
- unterstützt
@requires(...)in klassenmethoden. - URL-Maskierung auf Formulardaten anwenden.
- Automatische Unterstützung
HEADAntrag. - wurde um
await request.is_disconnected()erweitert. - Der operationName wird an ein GraphQL-Aktor übergeben.
0.9.9
- fügt
TemplateResponsehinzu. CommaSeparatedStringsDatatyp hinzufügen.- Add
BackgroundTasksfor multiple tasks.für mehrere Tasks hinzufügen. - Common subclass for
RequestandWebSocket, to eg. sharesessionfunctionality. - expose remote address with
request.clientexpose remote address withrequest.client.* expose Remote-Adresse mitrequest.client.
0.9.8
- add
request.database.executemanyhinzufügen
0.9.7
- Ensure that
AuthenticationMiddlewareHandles Lifespan Messages Correctly.AuthenticationMiddleware-Hände leben Nachrichten korrekt.
0.9.6
AuthenticationMiddlewareund@requires()decorator hinzufügen.
0.9.5
- unterstützt entweder
stroderSecretfürSessionMiddleware(secret_key=...).
0.9.4
- Add
config.environhinzufügen. - Add
datastructures.Secrethinzufügen. - hinzufügen
datastructures.DatabaseURL.
0.9.3
- Add hinzufügen
config.Config(".env")
0.9.2
- Add optional database support (Optionale Datenbankunterstützung)
requestzum GraphQL-Kontext hinzufügen.- hide jedes passwort, das in
URL.__repr__enthalten ist
0.9.1
- Handle startup/shutdown errors properly (Fehler beim Starten).
0.9.0
TestClientKann jetzt als Context-Manager verwendet werden, währendLifespanContext.- Start-ups und Shutdown-Ereignisse sind sichtbar durch den Middleware-Stack.
0.8.8
- Bessere Unterstützung für Third-Party API Schema Generators.
0.8.7
- Unterstützt chunked requests mit TestClient.
- Cleanup asyncio tasks properly mit wsgimiddleware.
- -Unterstützung mit TestClient innerhalb von Endpunkten für Service-Blocking.
0.8.6
- Session-Cookies werden nun auf dem Root-Path gesetzt.
0.8.5
- Unterstützung für URL Translator.
- unterstützt HTTP 304-Cache-Antworten von
StaticFiles. - Löst das Problem der Zeichenumwandlung in Formulardaten.
0.8.4
- Das Subjekt wird in der Antwort als leer angenommen.
0.8.3
- fügt
@app.route()den Parameter name hinzu. - Verwenden Sie den "Host"-Header für die URL-Rekonstruktion.
0.8.2
Statisches Dokument
- StaticFiles liest keine Dateien mehr als Antwort auf
HEAD-Anfragen.
0.8.1
Muster modellieren.
- Verwenden Sie Jinja2, um Standardvorlagenkonfigurationen hinzuzufügen.
Folgende Inhalte sind erlaubt:
Beispiel: Starlette (template_directory ="templates")
@ app. route ('/')
async def Homepage (Anforderung):
#`url_for` ist im Inneren des Tempels verfügbar.
Vorlage = app. get_template ('index.html')
content = template. render (Anforderung = Anforderung)
Zurück zu HTMLResponse (Content)
0.8.0
Ausnahme
- unterstützt
@app.exception_handler(404). - Stellen Sie sicher, dass die verarbeiteten Ausnahmen nicht vom Middleware-Stack als Fehler behandelt werden.
Mitten im Gespräch
- Add hinzufügen
max_ageVerwenden Sie timestamp-signierte Cookies. defaults to two weeks.
Die Cookies
- Ensure-Cookies sind streng HTTP-korrekt.
Statistische Files
- Überprüfen Sie die Existenz des Verzeichnisses bei der Installation.
0.7.4
Die Concurrency
- add hinzufügen
starlette.concurrency.run_in_threadpoolJetzt HandlescontextvarUnterstützung.
0.7.3
Das Routing
- Add hinzufügen
name=Unterstützt Toapp.mount()Dies erlaubt eG:app.mount('/static', StaticFiles(directory='static'), name='static').
0.7.2
Die Middleware
- Add Support für
@app.middleware("http")Der Decorator.
Das Routing
- Add "Endpoint" zu ASGI scope.
0.7.1
Debug-Tracebacks erstellen
- Verbesserung der Debug-Traceback-Information und-Styling.
Das URL-Routing
- Support mounted URL lookups with "path =", eg. unterstützt URLs mit "path =", eg.
url_for('static', path=...). - Support nested URL lookups, eg.
url_for('admin:user', username=...).url_for('admin:user', username=...)Unterstützung von nested URL lookups, eg. - Redirect Slashes werden unterstützt.
- Fügen Sie www Redirect Unterstützung hinzu.
Hintergrund-Aufgaben
- Add background task support to
FileResponseandStreamingResponse.* Add background task support toFileResponseandStreamingResponse.
0.7.0
API-Schemaunterstützung
- Add
app.schema_generator = SchemaGenerator(...). - Add
app.schemaEigenschaft. - add
OpenAPIResponse(...).
Das GraphQL Routing
- Drop
app.add_graphql_route("/", ...)in hinter mehr consistentapp.add_route("/", GraphQLApp(...)).
0.6.3
Routing-API einrichten
- Unterstützt das Routing zu Methoden.
- Ensure
url_path_forworks with Mount ('/{some_path_params}') Bearbeiten - Fix Router (default =) Argument.
- unterstützt wiederholte Paths wie:
@app.route("/", methods=["GET"]),@app.route("/", methods=["POST"]) - Verwenden Sie den Standard-ThreadPoolExecutor für alle Sync-Endpunkte.
0.6.2
Die SessionMiddleware
Erhöhung ja. request.session Unterstützung, und SessionMiddleware 。
0.6.1
BaseHTTP-Zwischenspeicher
Hinzugefügt ja. BaseHTTPMiddleware Es bietet eine Standard-Anfrage/Antwort-Schnittstelle über herkömmliche ASGI-Middleware.
Das bedeutet, dass Sie ASGI-Middleware schreiben und trotzdem auf der Anforderungs-/Antwortebene arbeiten können, anstatt ASGI-Nachrichten direkt zu verarbeiten.
von starlette. applications import Starlette
von starlette. middleware. base import BaseHTTPIddleware
Customclass Middleware (BaseHTTPIddleware) ist eine
async def dispatch (self, request, call_next):(für den Dispatch)
request = await call_next (Anforderung)
response. headers 'Custom-Header']=' Beispiel '
return antwort zurück
Beispiel = Starlette ()
add_middleware (CustomMiddleware)(Hinzufügen)
0.6.0
Siehe. path_params.
0.6 Die größte Änderung besteht darin, dass Endpunktsignaturen nicht mehr sind:
async def func (Anforderung: Request, ** kwargs)-> Antwort
Stattdessen verwenden wir nur:
async def func (Request: Request)-> Antwort
Der Pfadparameter ist in der Form request.path_params in Anfragen verfügbar.
Dies ist anders als die meisten Python-Webframeworks, aber ich denke, es wird irgendwann konsistenter während des gesamten Prozesses.
url_für ()
Request und WebSocketSession unterstützen jetzt die URL-Umkehrung mit request.url_for(name, **path_params), einer Methode, die eine vollständig qualifizierte URL-Instanz einer URL-Instanz zurückgibt, die ein Zeichenfolge-ähnliches Objekt ist.
app. url_path_for ()(die englische Bezeichnung kann technisch gesehen der Name einer bestimmten Funktion oder Methode sein, aber im chinesischen Kontext wird manchmal die englische Version des Originaltextes beibehalten, um die Genauigkeit und Professionalität zu gewährleisten, so dass die Übersetzung hier direkt in der englischen Form des Originaltextes beibehalten wird).
Anwendungen unterstützen jetzt die Verwendung von app.url_path_for(name, **path_params) für die URL-Pfadumkehr Diese Methode gibt eine Instanz von URL zurück, auf der ein Pfad und ein Schema festgelegt sind, wobei es sich bei der URL-Instanz um ein Zeichenfolge-ähnliches Objekt handelt, das nur den Pfad zurückgibt, wenn eine Konvertierung in eine Zeichenfolge erzwungen wird.
App. unterwegs.
Die Anwendung unterstützt nun einen .routes-Parameter, der eine Liste von [Route|WebSocketRoute|Mount] zurückgibt.
Route, WebSocket-Route, eingehängt
Low-Level-Komponenten zum Router Jetzt mit @app.route() 、 @app.websocket_route() und app.mount() Unterschrift entspricht.