コンテンツにスキップ

リリースノート

0.38.2

2024年7月27日

固定された

  • は、すべてのルーチンが routing.get_name()#2648で __name__ を持っているとは限りません。

0.38.1

2024年7月23日

削除済み

  • 復元「AS GI path send拡張のサポートを追加」#2649。

0.38.0

2024年7月20日

追加された

  • は、StreamingResponse と Response#2576および#2577で memoryview を使用することを許可します。
  • StaticFiles#2583で要求されたファイル名が長すぎる場合、500ではなく404を送信します。

変更(または:変更)

  • は、無効な Jinja2Template インスタンス化パラメータ#2568で迅速に失敗しました。
  • エンドポイントハンドラを非同期で1回だけチェックします#2536。

固定された

  • 適切な同期を WebSocketTestSession#2597に追加します。

0.37.2

2024年3月5日

追加された

  • bytes を _RequestData 型#2510に追加します。

固定された

  • 「TestClient(#2377)で scope["client"] を None に変換する」を元に戻す#2525。
  • TestClient #2526で httpx.Client に渡された非推奨の app 引数を削除します。

0.37.1

2024年2月9日

固定

  • Config #2485でenvファイルが欠落している場合、警告します。

0.37.0

2024年2月5日

追加した

  • WebSocket Denial Response AS GI拡張#2041をサポートします。

0.36.3

2024年2月4日

固定

  • 非同期コンテキスト#2459で anyio.Event を作成します。

0.36.2

2024年2月3日

固定

  • アップグレード python-multipart に 0.0.7 13 e 5 c 26。
  • 重複した文字セットを避ける Content-Type #2443。

0.36.1

2024年1月23日

固定

  • 拡張子#2438をチェックする前に、スコープ内に"拡張子"があるかどうかを確認します。

0.36.0

2024年1月22日

追加された

  • AS GI pathsend 拡張#2435のサポートを追加しました。
  • 閉じる#2427で WebSocketTestSession をキャンセルします。
  • WebSocket.send() が IOError #2425を除外する場合、WebSocketDisconnect を上げます。
  • Config の env_file パラメータが有効でない場合に FileNotFoundError を上げる#2422.

0.35.1

2024年1月11日

固定された

  • StaticFiles #2406内の FileResponse で非推奨の"method"パラメータの使用を停止します。
  • typing-extensions を再びオプションにする#2409.

0.35.0

2024年1月11日

追加された

  • *args を Middleware に追加し、その型ヒント#2381を改善します。

固定された

  • は iterate_in_threadpool#2362で Iterator ではなく Iterable を使用する

変化する

  • は root_path を処理して、インストールされているAS GIアプリケーションやWS GI#2400との互換性を維持します。
  • は TestClient#2377で scope["client"] を None に変える

0.34.0

2023年12月16日

追加された

  • は ParamSpec を run_in_threadpool#2375に使用します。
  • に UploadFile.__repr__#2360を追加します。

固定された

  • は TestClient#2376でURLを正しくマージします。
  • は、StaticFiles#2334上の弱いETagsを考慮します。

時代遅れです

  • は FileResponse(method=...) パラメータ#2366を廃止しました。

0.33.0

2023年12月1日

追加された

  • は、Route/WebSocketRoute ごとに middleware#2349を追加します。
  • は Router ごとに middleware#2351を追加します。

固定された

  • は "path" と "root_path" の範囲キー#2352を上書きしないでください。
  • は WebSocket.send_json()#2341のために json.dumps() に ensure_ascii=False を設定します。

0.32.0. post 1

2023年11月5日

固定された

  • mkdocs-materialを9.1.17から9.4.7#2326にロールバックします。

0.32.0

2023年11月4日

追加された

  • は WebSocketDisconnect 上で reason#2309を送信します。
  • SessionMiddleware#2280に domain パラメータを追加します。

変更する

  • は _TemplateResponse#2274で HTMLResponse から継承され、Response からは継承されません。
  • は Response.render 型コメントを0.31.0前の状態#2264に戻します。

0.31.1

2023年8月26日

固定された

  • exceptiongroup が利用できないときのインポートエラーを修正#2231。
  • カスタムJinja環境に url_for グローバル変数#2230を設定します。

0.31.0

2023年7月24日

追加された

  • はPython 3.12#2214を正式にサポートしています。
  • AnyIO 4.0#2211をサポート。
  • 厳密に注釈付きStarletteを入力します(mypyではstrictモード)#2180。

固定

  • TestClient #2219を使用する場合、重複したヘッダーを単一の文字列にグループ化しないでください。

0.30.0

2023年7月13日

削除

  • Drop Python 3.7は#2178をサポートしています。

0.29.0

2023年7月13日

追加した

  • TestClient #2207に follow_redirects パラメータを追加します。
  • __str__ を HTTPException と WebSocketException #2181に追加します。
  • on_startup/on_shutdown #2193と一緒に lifespan を使用するときにユーザーに警告します。
  • Host からルートを収集し、Open APIスキーマ#2183を生成します。
  • TemplateResponse #2191に request 引数を追加します。

固定された

  • BaseHTTPMiddleware #2194上の more_body=False の場合、body_stream を停止します。

0.28.0

2023年6月7日

チェンジ

  • BaseHTTPMiddleware #1692でcall_nextのために Request のボディバッファを再利用します。
  • 例外処理ロジックを Route #2026に移動します。

追加された

  • env パラメータを Jinja2Templates に追加し、**env_options#2159を破棄します。
  • httpx がインストールされていないときに明確なエラーメッセージ#2177を追加します。

固定された

  • では、templates url_for()#2127でnameパラメータを使用できます。

0.27.0

2023年5月16日

このバージョンでは、StaticFiles のパストラバースの脆弱性が修正されました。完全なセキュリティ情報を確認できます:https://github.com/encode/starlette/security/advisories/GHSA-v5gw-mw7f-84px

追加された

  • は、send_json を介してJSON WebSocketデータを縮小します。詳細については、https://github.com/encode/starlette/pull/2128を参照してください

固定された

  • StaticFiles 1797 de 4では、commonprefix を commonpath に置き換えます。
  • ImportErrorsをModuleNotFoundError#2135に変換します。
  • websocket#2141でRuntimeErrorメッセージの内容を修正します。

0.26.1

2023年3月13日

固定された

  • Starlette#2077のLifespanの型を修正して、そのサブクラスを許可します。

0.26.0. post 1

2023年3月9日

固定

  • mkdocs. ymlの参照をEventsからLifespanに置き換える #2072。

0.26.0

2023年3月9日

追加した

チェンジ

  • url_for シグネチャを変更して、URL インスタンス#1385を返します。

固定

  • url_for() と url_path_for() #2050に対する"name"引数を許可します。

非推奨

  • on_startup と on_shutdown のイベントを非推奨にする#2070。

0.25.0

2023年2月14日

フィックス

  • MultipartParser 8 c 74 c 2 cおよび#2036で multipart/form-data を解析する際のフィールドとファイルの数を制限します。

0.24.0

2023年2月6日

追加された

  • 許可する StaticFiles シンボリックリンクをたどる #1683。
  • 許可する Request.form() コンテキストマネージャーとして #1903。
  • 追加する size 属性する UploadFile #1405。
  • Config #1990に env_prefix 引数を追加します。
  • テンプレートコンテキストプロセッサの追加 #1904。
  • Response.set_cookie メソッド#1908上の expires パラメータで str と datetime をサポート。

チェンジ

  • Lazilyはミドルウェアスタック#2017を構築しました。
  • UploadFile #1413に必要な file 引数を作成します。
  • カスタム応答テンプレート拡張機能の代わりにデバッグ拡張機能を使用する #1991。

固定された

  • URL.replace #1965上のipv 6 URLのURL解析を修正しました。

0.23.1

2022年12月9日

固定された

  • BaseHTTPMiddleware #1940でbodyが空の場合にのみ、body_stream でストリームの受信を停止します。

0.23.0

2022年12月5日

追加された

  • TestClient #1966に headers パラメータを追加します。

時代遅れです

  • は Starlette と Router のデコレータ#1897を廃止しました。

固定された

  • 修正する FloatConvertor 正規表現のバグ#1973。

0.22.0

2022年11月17日

変わった

  • 応答に Content-Encoding#1901が含まれている場合、GZipMiddleware をバイパスします。

固定された

  • から TestClient #1953のクエリパラメータから不要なものを削除する unquote() 。
  • は、MutableHeaders._list が実際には list#1917であることを確認します。
  • と次のバージョンの AnyIO#1936のインポート互換性。

0.21.0

2022年9月26日

このバージョンは、TestClient で使用されている基本的なHTTPクライアント(requests :arrow_right:httpx)を置き換えます。これらのクライアントのAPIがわずかに異なるため、テストスイートが中断される可能性があります。移行をスムーズにするために、bump-testclient ツールを使用できます。

変更(または:変更)

  • TestClient#1376では、requests を httpx に置き換えます

追加された

  • WebSocketException を追加し、WebSocket例外ハンドラ#1263をサポートします。
  • middleware パラメータを Mount クラス#1649に追加します。
  • はPython 3.11を公式にサポートしています。#1863。
  • ルートクラス#1864に __repr__ を実装します。

固定

  • バグ修正 BackgroundTasks 利用時にキャンセルされた BaseHTTPMiddleware クライアント切断 #1715。

0.20.4

2022年6月28日

固定

  • Open APIスキーマ#1648を生成する際に、パスからコンバーターを削除します。

0.20.3

2022年6月10日

固定

  • 「StaticFiles がシンボリックリンクを追跡できるようにする」を元に戻す#1681。

0.20.2

2022年6月7日

固定された

  • コロン#1675によるルートパスの回帰を修正しました。
  • StaticFiles がシンボリックリンク#1337をフォローできるようにします。

0.20.1

2022年5月28日

固定された

  • 非同期呼び出し可能な#1444の検出を改善しました。
  • boundary が#1617にない場合、400(Bad Request)を送信します。
  • Content-Disposition ヘッダー#1643に"name"フィールドがない場合、400(Bad Request)を送信します。
  • 空のデータを送信しない StreamingResponse に BaseHTTPMiddleware #1609。
  • Secret #1625に __bool__ dunderを追加します。

0.20.0

2022年5月3日

削除

  • Drop Python 3.6は#1357と#1616をサポートしています。

0.19.1

2022年4月22日

固定された

  • メソッド#1553から作成された Route.name の推論を修正しました。
  • コードが None #1574の場合、websocket.disconnect 上の TypeError を避けてください。

時代遅れです

  • WS_1005_NO_STATUS_RCVD と WS_1006_ABNORMAL_CLOSURE を優先して WS_1004_NO_STATUS_RCVD と WS_1005_ABNORMAL_CLOSURE を廃止します。以前の定数はWebSocketsの仕様#1580と一致しませんでした。

0.19.0

2022年3月9日

追加された

  • バックグラウンドタスクでエラーが発生しても、エラーハンドラーは常に実行されます。 #761。
  • headers パラメータを HTTPException #1435に追加します。
  • 内部の対応 405 ステータスコード Allow によって記述されるヘッダー RFC 7231 #1436。 JSONResponse における* の content パラメータが必須になりました#1431。
  • カスタムURLコンバーター登録#1437を追加します。
  • FileResponse#1266にコンテンツ処理型パラメータを追加します。
  • [デコレータが必要#920]で、次のクエリパラメータを元のリクエストURLとともに追加します。
  • TestClient スコープ#1445に raw_path を追加します。
  • MutableHeaders#1240にジョイント演算子を追加します。
  • 欠落しているルートの詳細は、デバッグページ#1363に表示されます。
  • は anyio に必要なバージョン範囲を >=3.4.0,<5.0#1421と#1460に変更しました。
  • に typing-extensions>=3.10 を追加する要件-Python 3.10未満のバージョンでのみ#1475を使用してください。

固定された

  • は、BaseHTTPMiddleware が StreamingResponse とインストール済みアプリケーション#1459のエラーを隠すのを防ぎます。
  • SessionMiddleware は、AS GIの「root path」#1512をデフォルトで使用するのではなく、明示的な path=... を使用します。
  • Request.client 現在、AS GI仕様#1462に準拠しています。
  • は、早期に欠落した境界#1349に対して KeyError を昇格させました。

時代遅れです

  • a 2 wsgiを優先してWSGIMiddlewareを廃止する #1504。
  • run_until_first_complete #1443を廃止します。

0.18.0

1月23、2022

追加した

  • FileResponse #1345でデフォルトのチャンクサイズを4 Kbから64 Kbに変更します。
  • WebSocketRoute #1356で functools.partial のサポートを追加しました。
  • #1350ディレクトリに StaticFiles パッケージを追加します。
  • Jinja2Templates #1401で環境オプションを許可します。
  • HttpEndpoint #1346でHEADメソッドを許可します。
  • websocket.accept メッセージ#1361と#1422に追加のヘッダーを受け入れます。
  • reason を WebSocket に追加し、AS GIイベント#1417を閉じます。
  • UploadFile #1382にヘッダー属性を追加します。
  • Content-Length: 0 ケースの Content-Length ヘッダーを省略しないでください#1395。
  • 1 xx、204、304のステータスコード#1397で応答のヘッダーを設定しないでください。
  • SessionMiddleware.max_age が None を受け入れるようになったので、クッキーはブラウザセッション#1387と同じくらい長く続くことができます。

固定された

  • 微調整 hashlib.md5() 上の機能 FileResponse s ETag生成。パラメータ usedforsecurity フラグは False フラグがシステムで利用可能な場合。これにより、システムで発生したエラーが修正されます。 フィップ 有効にする #1366 そして #1410。
  • url_path_for() メソッドの path_params 型を修正しました。つまり、str を Any #1341に変換しました。
  • Host は、#1322のルーティングで port を無視するようになりました。

0.17.1

2021年11月17日

固定された

  • フィックス IndexError 認証で requires ラップされた関数引数が *args そして **kwargs #1335。

0.17.0

2021年11月4日

追加された

  • Response.delete_cookie が Response.set_cookie #1228と同じパラメータを受け付けるようになりました。
  • Jinja2Templates コンストラクタを更新して、PathLike #1292を許可します。

固定された

  • Session Middleware#1264でのBadSignature例外処理を修正しました。
  • HTTPConnection.__getitem__ の戻り値の型を str から typing.Any #1118に変更します。
  • 変更する ImmutableMultiDict.getlist 型を返す typing.List[str] に typing.List[typing.Any] #1235。
  • StaticFiles #1220上の OSError 例外を処理します。
  • StaticFiles 404. htmlをHTMLモードで修正#1314.
  • BaseHTTPMiddleware#1262のエラービューでanyio. ExceptionGroupを防止します。

削除

  • GraphQLサポートを削除#1198.

0.16.0

2021年7月19日

追加された

固定された

  • starlette.websockets.WebSocket インスタンスがハッシュ可能になり、アイデンティティで比較される#1039
  • 寿命#1213、#1227でのタスクグループの実行に関連する多数の修正

非推奨/削除

  • メソッド starlette.templates.Jinja2Templates.get_env が削除されました#1218
  • ClassVar starlette.testclient.TestClient.async_backend が削除され、コンストラクタkwargs#1211を使用してバックエンドが設定されました
  • 非同期ジェネレータ関数またはジェネレータ関数を starlette.routing.Router(lifespan=) に渡すことは非推奨です。 あなたは @contextlib.asynccontextmanager であなたの寿命をラップする必要があります。#1227#1110

0.15.0

2021年6月23日

今回のリリースでは、Starletteの基盤となる非同期部分が大幅に変更されました。その結果、StarletteはAnyIOに依存するようになり、いくつかの小さなAPIの変更が行われました。また、今回のリリースでのもう1つの大きな変更は、組み込みのGraphQLサポートが廃止されたことです。

追加された

  • Starletteは現在、AnyIOを介してTrioを非同期ランタイムとしてサポートしています-#1157。
  • TestClient.websocket_connect() コンテキストマネージャーとして使用する必要があります。
  • Python 3.10の初期サポート-#1201。
  • が GZipMiddleware で使用する圧縮レベルが調整可能になりました-#1128。

固定された

  • による CORSMiddleware のいくつかの修正。#1111、#1112、#1113、#1199を参照してください。
  • パスパラメータ名が重複している場合の例外メッセージの改善-#1177。
  • RedirectResponse は、Djangoなどの他のフレームワークでの動作とよりよく一致するために、quote_plus エンコーディングではなく quote エンコーディングを Location ヘッダーで使用するようになりました-#1164。
  • 多くの場合、異常の原因が保持されるようになりました-#1158。
  • アプリケーションがマウントされている場合、セッションCookieはAS GIルートパス-#1147を使用するようになりました。
  • 特定の状況下で静的ファイルを削除するときにキャッシュが無効になるエラーを修正しました-#1023。
  • は、大きな応答を処理する際の BaseHTTPMiddleware のメモリ使用量を改善しました-#1157で#1012を修正しました

廃止/削除済み

  • GraphQLApp クラスを介した組み込みGraphQLサポートは廃止され、将来のリリースで削除されます。#619を参照してください。 GraphQLはPython 3.10ではサポートされていません。
  • GraphQLApp の executor パラメータが削除されました。代わりに executor_class を使用してください。
  • WSGIMiddleware への workers パラメータが削除されました。これはStarlette v 0.6.3以降影響を受けていません。

0.14.2

2021年2月2日

固定

  • 固定 ServerErrorMiddleware デバッグモードが有効な場合のPython3.9.1/3.8.7との互換性- #1132。
  • WebSocketエンドポイント-#1132で TestClient を使用する際に、非クローズドソケット ResourceWarning sを修正しました。
  • Python 3.8+で functools.partial に包まれた async エンドポイントの検出を改善-#1106.

0.14.1

2020年11月9日

削除

  • UJSONResponse が削除されました(この変更は0.14.0に含まれる予定でした)。 カスタムJSONシリアライズを使用してレスポンスを実装する方法については、のドキュメントを参照してください-#1074。

0.14.0

2020年11月8日

追加された

  • Starletteは現在、Python 3.9を正式にサポートしています。
  • StreamingResponse では、__aiter__ を実装するクラスのオブジェクトなど、カスタムの非同期イテレータを許可します。
  • Pythonバージョン3.6および3.7で functools.partial 非同期ハンドラの使用を許可します。
  • 418 I'm A Teapotステータスコードを追加します。

チェンジ

  • asyncio.wait に送信する前に、ハンドラコルーチンからタスクを作成します。
  • ServerErrorMiddleware の debug レスポンスでは、format_tb の代わりに format_exception を使用します。
  • requires デコレータを使用するときは、ハンドラ引数をより寛大にします。

0.13.8

  • BaseHTTPMiddleware ミドルウェアクラスとストリーミングレスポンスの Queue(maxsize=1) 修正を元に戻します。

  • StaticFiles コンストラクターは、directory 引数の文字列に加えて、pathlib.Path を許可するようになりました。

0.13.7

  • BaseHTTPMiddleware ミドルウェアクラスとストリーミングレスポンスを使用する際の高いメモリ使用量を修正しました。

0.13.6

  • StaticFiles で404エラーを修正。

0.13.5

  • Starlette(lifespan=...) 機能のサポートを追加します。
  • StaticFilesアプリケーションでより強力なパストラバースチェックを実行します。
  • WS GI PA TH_INFOエンコーディングを修正しました。
  • Redirect Responseは、オプションのbackgroundパラメータを受け入れるようになりました
  • パスルーティングに正規表現メタ文字を含めることを許可します
  • AS GI HTTPの"body"をオプションのキーとして扱います。
  • メモリ内のアップロードファイルの書き込みにスレッドプールを使用しないでください。

0.13.0

  • 初期化スタイルでアプリケーション構成を容易にするために、さまざまな場所で切り替えます。これは、デコレータスタイルを放棄し、宣言的なルーティングテーブルとミドルウェア定義をサポートすることを意味します。

0.12.12

  • は、「ネストインストール」の場合の request.url_for() の問題を修正します。

0.12.11

  • AS GI root_path を使用する場合、request.url_for() を修正します。

0.12.1

  • 追加する URL.include_query_params(**kwargs)
  • 追加する URL.replace_query_params(**kwargs)
  • 追加する URL.remove_query_params(param_names)
  • request.state ミドルウェアで正しく継続します。
  • は request.scope インターフェースを追加しました。

0.12.0

  • AS GI 3.0に切り替えます。
  • CORSミドルウェアの修正。
  • StaticFiles(html=True) のサポートを追加します。
  • リダイレクトレスポンスでのパス引用を修正しました。

0.11.1

  • 任意の追加情報を格納するための request.state インターフェースを追加します。
  • GraphQLApp(..., graphiql=False) でGraphiQLを無効にするサポート。

0.11.0

  • DatabaseMiddleware は現在、賛成して削除されています databases
  • アプリケーションインスタンスでテンプレートが構成されなくなりました。 templates = Jinja2Templates(directory=...) そして return templates.TemplateResponse('index.html', {"request": request})
  • スキーマ生成がアプリケーションインスタンスにアタッチされなくなりました。schemas = SchemaGenerator(...) と return schemas.OpenAPIResponse(request=request) を使用
  • LifespanMiddleware ルーターベースの寿命処理を支持して廃止されました。
  • アプリケーションインスタンスは、 routes 引数, Starlette(routes=[...])
  • スキーマ生成にマウントされたルートが含まれるようになりました。

0.10.6

  • Lifespan ルーティングコンポーネントを追加します。

0.10.5

  • templating が jinja2 のインストールを厳密に要求しないことを確認します。

0.10.4

  • テンプレートは、アプリケーションインスタンス.templates = Jinja2Templates(directory=...) から独立して構成されるようになりました。既存のAPIはそのままですが、もはや文書化されておらず、いずれ廃止予定です。 詳細については、テンプレートのドキュメントを参照してください。

0.10.3

  • DatabaseMiddleware ではなく、独立した databases パッケージに移動します。既存のAPIはそのままですが、もはや文書化されておらず、いずれ非推奨になります。

0.10.2

  • HTTPSRedirectMiddleware からのリダイレクトに明示的なポート番号をドロップしないでください。

0.10.1

  • My SQLデータベースのサポートを追加します。
  • ホストベースのルートを追加します。

0.10.0

  • WebSocketsは現在、デフォルトでテキストデータフレームを介してJSONを送受信します。バイナリフレーム分割には .send_json(data, mode="binary") と .receive_json(mode="binary") を使用します。
  • GraphQLApp は、既存の executor パラメータよりも優先的に使用する executor_class パラメータを受け入れるようになりました。イベントループが設定される前に非同期アクチュエータをインスタンス化する問題が解決されました。executor パラメータは、次のミドルバージョンまたはビッグバージョンで廃止されることが予想されます。
  • 認証と @requires デコレータがWebSocketエンドポイントをサポートするようになりました。
  • MultiDict と ImmutableMultiDict クラスは uvicorn.datastructures で利用できます。
  • QueryParams は、標準の辞書スタイルの *args, **kwargs パラメータを使用してインスタンス化されるようになりました。

0.9.11

  • セッションCookieには、既存の署名済み有効期限に加えて、ブラウザの「有効期限」が含まれるようになりました。
  • request.form() マルチディクショナリインターフェイスを返します。
  • 複数の同じキーがある場合、クエリパラメーターのマルチディクショナリ実装 .keys() 、 .values() そして .items() の行為をより正確に反映することができる dict 。
  • は、プロセス全体で urlparse の代わりに urlsplit を使用します。

0.9.10

  • クラスメソッドのサポート @requires(...) 。
  • フォームデータにURLエスケープを適用します。
  • は HEAD リクエストを自動的にサポートします。
  • 追加する await request.is_disconnected() 。
  • operationNameをGraphQLアクチュエータに渡します。

0.9.9

  • に TemplateResponse を追加します。
  • CommaSeparatedStrings データ型を追加します。
  • 複数のタスクに BackgroundTasks を追加します。
  • Request と WebSocket の共通サブクラスで、例えば session の機能を共有します。
  • request.client でリモートアドレスを公開します。

0.9.8

  • request.database.executemany を追加します。

0.9.7

  • AuthenticationMiddleware が寿命メッセージを正しく処理することを確認します。

0.9.6

  • AuthenticationMiddleware と @requires() デコレータを追加します。

0.9.5

  • どちらかをサポート str または Secret ために SessionMiddleware(secret_key=...)。

0.9.4

  • config.environ を追加します。
  • datastructures.Secret を追加します。
  • datastructures.DatabaseURL を追加します。

0.9.3

  • 追加する config.Config(".env")

0.9.2

  • オプションのデータベースサポートを追加します。
  • GraphQLコンテキストに request を追加します。
  • URL.__repr__ のパスワードコンポーネントを隠します。

0.9.1

  • 起動/シャットダウンエラーを適切に処理します。

0.9.0

  • TestClient は、LifespanContext の代わりにコンテキストマネージャとして使用できるようになりました。
  • Lifespanがミドルウェアとして扱われるようになりました。起動イベントとシャットダウンイベントはミドルウェアスタック全体に表示されます。

0.8.8

  • サードパーティのAPIスキーマジェネレータのサポートを強化しました。

0.8.7

  • TestClientでチャンクリクエストをサポートします。
  • WSGIMiddlewareでasyncioタスクを適切にクリーンアップします。
  • エンドポイント内のTestClientを使用したサービスモックのサポート。

0.8.6

  • セッションクッキーがルートパスに設定されるようになりました。

0.8.5

  • URLコンバータをサポートします。
  • は、StaticFiles からのHTTP 304キャッシュ応答をサポートしています。
  • フォームデータの文字エスケープの問題を解決します。

0.8.4

  • デフォルトでは、レスポンスの本体は空です。

0.8.3

  • @app.route() にnameパラメータを追加します。
  • 「ホスト」ヘッダーを使用してURLを再構築します。

0.8.2

静的ファイル

  • StaticFilesは、HEAD リクエストへの応答でファイルを読み取らなくなりました。

0.8.1

テンプレート化

  • Jinja 2を使用して、デフォルトのテンプレート構成を追加します。

以下を許可します:

app=Starlette(template_directory="template")

@app. route('/')
async defホームページ(request):
    #`url_for` はテンプレート内で利用可能です。
    template=app. get_template('index.html')
    content=template. render(request=request)
    return HTMLResponse(コンテンツ)

0.8.0

例外

  • は @app.exception_handler(404) のサポートを追加しました。
  • 処理された例外がミドルウェアスタックによってエラーと見なされないようにします。

セッションミドルウェア

  • max_age を追加し、タイムスタンプで署名されたクッキーを使用します。デフォルトは2週間です。

クッキー

  • クッキーが厳密にHTTPで正しいことを確認してください。

静的ファイル

  • インスタンス化時にディレクトリが存在することを確認します。

0.7.4

並行性

  • starlette.concurrency.run_in_threadpool を追加します。現在、contextvar のサポートを処理しています。

0.7.3

ルーティング

  • app.mount() に name= サポートを追加します。これにより、例えば:app.mount('/static', StaticFiles(directory='static'), name='static') が可能になります。

0.7.2

ミドルウェア

  • @app.middleware("http") デコレータのサポートを追加します。

ルーティング

  • AS GIスコープに「エンドポイント」を追加します。

0.7.1

デバッグトレースバック

  • デバッグトレースバック情報とスタイリングを改善します。

URLルーティング

  • "path="でマウントされたURL検索をサポートします。例:url_for('static', path=...)。
  • .url_for('admin:user', username=...) などのネストされたURL検索をサポートします。
  • リダイレクトスラッシュのサポートを追加します。
  • wwwリダイレクトサポートを追加します。

バックグラウンドタスク

  • FileResponse と StreamingResponse にバックグラウンドタスクサポートを追加します。

0.7.0

APIスキーマのサポート

  • app.schema_generator = SchemaGenerator(...) を追加します。
  • app.schema プロパティを追加します。
  • OpenAPIResponse(...) を追加します。

GraphQLルーティング

  • より一貫した app.add_route("/", GraphQLApp(...)) を優先して app.add_graphql_route("/", ...) をドロップします。

0.6.3

ルーティングAPI

  • メソッドへのルーティングをサポートします。
  • url_path_for がMount('/{some_path_params}')で動作することを確認します。
  • ルーター(デフォルト=)引数を修正。
  • 次のような繰り返しパスをサポート:@app.route("/", methods=["GET"]),@app.route("/", methods=["POST"])
  • すべての同期エンドポイントにデフォルトのThreadPoolExecutorを使用します。

0.6.2

セッションミドルウェア

request.session のサポートを追加し、SessionMiddleware

0.6.1

BaseHTTPミドルウェア

通常のAS GIミドルウェアを介して標準のリクエスト/レスポンスインターフェイスを提供する BaseHTTPMiddleware のサポートが追加されました。

これは、AS GIメッセージを直接処理するのではなく、要求/応答レベルで作業しながらAS GIミドルウェアを記述できることを意味します。

Starlette. applicationからStarletteをインポート
starletteからBaseHTTPMiddlewareをインポート


class CustomMiddleware(BaseHTTPMiddleware):
    async def dispatch(self, request,call_next):
        response=await call_next(リクエスト)
        response. headers['カスタムヘッダー']='例'
        応答を返す


アプリ=Starlette()
app. add_ミドルウェア(CustomMiddleware)

0.6.0

リクエスト. path_params

0.6の最大の変更点は、エンドポイントの署名が次のようにならなくなったことです:

async def func(request: Request,**kwargs)->Response

代わりに、私たちだけを使用して:

async def func(request: Request)->Response

パスパラメータは、リクエストで request.path_params として使用できます。

これはほとんどのPython Webフレームワークとは異なりますが、最終的にはプロセス全体でより一貫性があると思います。

request. url_for()

リクエストとWebSocketSessionは現在サポートされています request.url_for(name, **path_params) URLを反転します。このメソッドは、完全に修飾された URL インスタンス。URLインスタンスは文字列のようなオブジェクトです。

app. url_path_for()(この英文表現は、技術分野においては特定の関数名やメソッド名である可能性があり、中国語文脈においては、正確性と専門性を確保するために原文の英文表現が保持されることがあるため、ここでの翻訳は原文の英文形式をそのまま保持している)

アプリケーションが app.url_path_for(name, **path_params) を使用したURLパスの反転をサポートするようになりました。このメソッドは、パスとスキーマを設定した URL インスタンスを返します。URLインスタンスは文字列のようなオブジェクトで、強制的に文字列に変換するとパスのみが返されます。

app.ルーティング

アプリケーションは、[Route|WebSocketRoute|Mount] のリストを返す .routes パラメータをサポートするようになりました。

ルーティング、WebSocketルーティング、マウント

Router への低レベルコンポーネントは、@app.route()、@app.websocket_route()、および app.mount() シグネチャと一致するようになりました。