リリースノート
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.713 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日
固定された
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日
追加された
固定
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日
チェンジ
追加された
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を参照してください
固定された
StaticFiles1797 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日
フィックス
MultipartParser8 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日
固定された
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日
削除
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を昇格させました。
時代遅れです
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()上の機能FileResponses 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例外を処理します。StaticFiles404. 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を使用する際に、非クローズドソケットResourceWarningsを修正しました。 - 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() シグネチャと一致するようになりました。