Changelog —フラスコのドキュメント

提供:Dev Guides
< FlaskFlask/docs/1.0.x/changelog
移動先:案内検索

変更ログ

バージョン1.0.4

2019年7月4日リリース

  • BadRequestKeyErrorのキー情報は、デバッグモード以外ではクリアされなくなったため、エラーハンドラーは引き続きアクセスできます。 これには、Werkzeug0.15.5にアップグレードする必要があります。 :issue: `3249`
  • send_file urlは、一部のブラウザーでより互換性のあるUTF-8ファイル名をサポートするために、「:」および「/」文字を引用符で囲んでいます。 :issue: `3074`
  • PEP451インポートローダーとpytest5.xの修正。 :issue: `3275`
  • stdoutではなくstderrにdotenvに関するメッセージを表示します。 :issue: `3285`


バージョン1.0.3

2019年5月17日リリース

  • send_file()は、ファイル名をLatin-1(ISO-8859-1)ではなくASCIIとしてエンコードします。 これにより、PEP3333よりもヘッダーエンコーディングが厳しいGunicornとの互換性が修正されます。 :issue: `2766`
  • FlaskGroupを使用するカスタムCLIが、環境変数に基づいて常に上書きされることなく、デバッグフラグを設定できるようにします。 :pr: `2765`
  • flask --versionは、Werkzeugのバージョンを出力し、Pythonバージョンを簡略化します。 :pr: `2825`
  • send_file()は、UTF-8でコード化されたバイトを持つネイティブPython 2文字列(バイト)であるattachment_filenameを処理します。 :issue: `2933`
  • HTTPExceptionに登録されているキャッチオールエラーハンドラーは、ルーティング中に内部的に使用されるRoutingExcpetionを処理しません。 これにより、1.0で導入された予期しない動作が修正されます。 :pr: `2986`
  • json引数をapp.test_clientに渡しても、余分なアプリコンテキストがプッシュ/ポップされることはありません。 :issue: `2900`


バージョン1.0.2

2018年5月2日リリース

  • ブループリントプレフィックスとルートの間のスラッシュのマージに関する下位互換性の問題を修正しました。 :pr: `2748`
  • ルートがない場合のflask routesコマンドのエラーを修正しました。 :issue: `2751`


バージョン1.0.1

2018年4月29日リリース

  • パーシャル(__name__なし)をビュー関数として登録する問題を修正しました。 :pr: `2730`
  • ビュー関数から返されたリストをタプルと同じように扱わないでください。 タプルのみが応答データとして解釈されます。 :issue: `2736`
  • ブループリントのurl_prefixとルートURLの間の余分なスラッシュがマージされます。 これにより、1.0での変更に伴う下位互換性の問題が修正されます。 :issue: `2731`:issue:` 2742`
  • すべてのBadRequestエラーではなく、デバッグモードでBadRequestKeyErrorエラーのみをトラップします。 これにより、abort(400)は期待どおりに機能し続けることができます。 :issue: `2735`
  • FLASK_SKIP_DOTENV環境変数を1に設定すると、dotenvファイルの自動ロードをスキップできます。 :issue: `2722`


バージョン1.0

2018年4月26日リリース

  • Python2.6および3.3はサポートされなくなりました。
  • 最小依存関係バージョンを最新の安定バージョンにバンプします:Werkzeug> = 0.14、Jinja> = 2.10、その危険> = 0.24、クリック> = 5.1。 :issue: `2586`
  • コマンドラインからFlaskアプリケーションを実行する場合は、app.runをスキップしてください。 これにより、デバッグを混乱させるような動作を回避できます。
  • JSONIFY_PRETTYPRINT_REGULAR のデフォルトをFalseに変更します。 jsonify()は、デフォルトでコンパクト形式を返し、デバッグモードではインデントされた形式を返します。 :pr: `2193`
  • Flask.__init__は、host_matching引数を受け入れ、url_mapに設定します。 :issue: `1559`
  • Flask.__init__は、static_host引数を受け入れ、静的ルートを定義するときにhost引数として渡します。 :issue: `1559`
  • send_file()は、attachment_filenameでUnicodeをサポートしています。 :pr: `2223`
  • _scheme引数をurl_for()からhandle_url_build_error()に渡します。 :pr: `2017`
  • add_url_rule()は、provide_automatic_options引数を受け入れて、OPTIONSメソッドの追加を無効にします。 :pr: `1489`
  • MethodViewサブクラスは、基本クラスからメソッドハンドラーを継承します。 :pr: `1936`
  • リクエストの開始時にセッションを開いているときに発生したエラーは、アプリのエラーハンドラーによって処理されます。 :pr: `2254`
  • ブループリントは、アプリのエンコーダーとデコーダーをオーバーライドするためにjson_encoderおよびjson_decoder属性を取得しました。 :pr: `1898`
  • Flask.make_response()は、応答タイプが悪い場合、ValueErrorではなくTypeErrorを発生させます。 タイプが無効である理由を説明するために、エラーメッセージが改善されました。 :pr: `2256`
  • routes CLIコマンドを追加して、アプリケーションに登録されているルートを出力します。 :pr: `2259`
  • セッションCookieドメインがベアホスト名またはIPアドレスの場合、Chromeなどの一部のブラウザでは正しく動作しない可能性があるため、警告を表示します。 :pr: `2282`
  • 正確なセッションCookieドメインとしてIPアドレスを許可します。 :pr: `2282`
  • SESSION_COOKIE_DOMAINは、SERVER_NAMEで検出された場合に設定されます。 :pr: `2282`
  • FLASK_APPからcreate_appまたはmake_appと呼ばれる引数なしのアプリファクトリを自動検出します。 :pr: `2297`
  • flaskコマンドを使用するために、ファクトリ関数はscript_infoパラメーターを受け取る必要はありません。 単一のパラメーターまたはscript_infoという名前のパラメーターを受け取る場合、ScriptInfoオブジェクトが渡されます。 :pr: `2319`
  • FLASK_APPは、FLASK_APP=myproject.app:create_app('dev')のように、必要に応じて引数を使用してアプリファクトリに設定できます。 :pr: `2326`
  • FLASK_APPは、編集可能モードでインストールされていないローカルパッケージを指すことができますが、pip install -eが引き続き推奨されます。 :pr: `2414`
  • Viewクラス属性provide_automatic_optionsas_view()に設定され、add_url_rule()によって検出されます。 :pr: `2316`
  • エラー処理は、blueprint, codeapp, codeblueprint, exceptionapp, exceptionに登録されているハンドラーを試行します。 :pr: `2314`
  • Cookieは、要求中にセッションがまったくアクセスされなかった場合(および削除されなかった場合)、応答のVaryヘッダーに追加されます。 :pr: `2288`
  • test_request_context()は、ベースURLを構築するときに使用するsubdomainおよびurl_scheme引数を受け入れます。 :pr: `1621`
  • デフォルトでは、 APPLICATION_ROOT'/'に設定します。 Noneに設定されたとき、これはすでに暗黙のデフォルトでした。
  • TRAP_BAD_REQUEST_ERRORS は、デバッグモードでデフォルトで有効になっています。 BadRequestKeyErrorには、一般的な不正な要求メッセージの代わりに、デバッグモードで不正なキーを含むメッセージがあります。 :pr: `2348`
  • TaggedJSONSerializerに新しいタグを登録して、セッションCookieへの他のタイプの保存をサポートできるようにします。 :pr: `2352`
  • リクエストがまだコンテキストスタックにプッシュされていない場合にのみ、セッションを開きます。 これにより、stream_with_context()ジェネレーターは、含まれているビューが使用するのと同じセッションにアクセスできます。 :pr: `2354`
  • テストクライアントのリクエストメソッドにjsonキーワード引数を追加します。 これにより、指定されたオブジェクトがJSONとしてダンプされ、適切なコンテンツタイプが設定されます。 :pr: `2358`
  • RequestクラスとResponseクラスの両方に適用されるミックスインにJSON処理を抽出します。 これにより、is_json()メソッドとget_json()メソッドが応答に追加され、JSON応答のテストがはるかに簡単になります。 :pr: `2358`
  • 一部の例外継承階層で予期しない結果が発生したため、エラーハンドラのキャッシュを削除しました。 MROのトラバースを回避したい場合は、例外ごとにハンドラーを明示的に登録してください。 :pr: `2362`
  • 認識している非UTC日時の誤ったJSONエンコーディングを修正しました。 :pr: `2374`
  • テンプレートの自動再読み込みは、jinja_envがすでにアクセスされている場合でも、デバッグモードを尊重します。 :pr: `2373`
  • 次の古い非推奨コードは削除されました。 :issue: `2385`
    • flask.ext-flask.ext名前空間を介さずに、名前で直接拡張機能をインポートします。 たとえば、import flask.ext.sqlalchemyimport flask_sqlalchemyになります。
    • Flask.init_jinja_globals-代わりにFlask.create_jinja_environment()を拡張します。
    • Flask.error_handlers-Flask.error_handler_specによって追跡され、Flask.errorhandler()を使用してハンドラーを登録します。
    • Flask.request_globals_class-代わりにFlask.app_ctx_globals_classを使用してください。
    • Flask.static_path-代わりにFlask.static_url_pathを使用してください。
    • Request.module-代わりにRequest.blueprintを使用してください。
  • Request.jsonプロパティは非推奨ではなくなりました。 :issue: `1421`
  • EnvironBuilderまたはdicttest_client.openへの受け渡しをサポートします。 :pr: `2412`
  • flaskコマンドとFlask.run()は、python-dotenvがインストールされている場合、.envファイルと.flaskenvファイルから環境変数をロードします。 :pr: `2416`
  • 完全なURLをテストクライアントに渡す場合、 PREFERRED_URL_SCHEME の代わりにURLのスキームが使用されます。 :pr: `2430`
  • Flask.loggerが簡略化されました。 LOGGER_NAMEおよびLOGGER_HANDLER_POLICY構成が削除されました。 ロガーは常にflask.appという名前です。 レベルは初回アクセス時にのみ設定され、毎回Flask.debugをチェックしません。 Flask.debugによって異なる形式ではなく、1つの形式のみが使用されます。 ハンドラーは削除されず、ハンドラーがまだ構成されていない場合にのみハンドラーが追加されます。 :pr: `2436`
  • ブループリントビュー関数名にドットを含めることはできません。 :pr: `2450`
  • 場合によっては、無効なRangeリクエストによって引き起こされるValueErrorを修正します。 :issue: `2526`
  • 開発サーバーはデフォルトでスレッドを使用します。 :pr: `2529`
  • silent=Trueで構成ファイルをロードすると、ENOTDIRエラーは無視されます。 :pr: `2581`
  • --certおよび--keyオプションをflask runに渡して、HTTPS経由で開発サーバーを実行します。 :pr: `2606`
  • セッションCookieのSameSite属性を制御するために、 SESSION_COOKIE_SAMESITE を追加しました。 :pr: `2607`
  • test_cli_runner()を追加して、テスト用にFlaskCLIコマンドを呼び出すことができるクリックランナーを作成しました。 :pr: `2636`
  • サブドメインマッチングはデフォルトで無効になっており、 SERVER_NAME を設定しても暗黙的に有効になるわけではありません。 subdomain_matching=TrueFlaskコンストラクターに渡すことで有効にできます。 :pr: `2635`
  • アプリに登録すると、ブループリントurl_prefixから1つの末尾のスラッシュが削除されます。 :pr: `2629`
  • silentがtrueのときに解析が失敗した場合、Request.get_json()は結果をキャッシュしません。 :issue: `2651`
  • Request.get_json()は任意のエンコーディングを受け入れなくなりました。 着信JSONは、 RFC 8259 に従ってUTF-8を使用してエンコードする必要がありますが、FlaskはUTF-8、-16、または-32を自動検出します。 :pr: `2691`
  • MAX_COOKIE_SIZE およびResponse.max_cookie_sizeを追加して、ブラウザが無視する可能性のある大きなCookieについてWerkzeugが警告するタイミングを制御します。 :pr: `2693`
  • ドキュメントのテーマを更新して、小さなウィンドウでドキュメントの見栄えを良くしました。 :pr: `2709`
  • チュートリアルドキュメントとサンプルプロジェクトを書き直して、新しいユーザーが一般的な落とし穴を回避できるように、より構造化されたアプローチを採用しました。 :pr: `2676`


バージョン0.12.5

2020-02-10リリース


バージョン0.12.4

2018年4月29日リリース

  • 0.12.3を再パッケージして、パッケージレイアウトの問題を修正します。 :issue: `2728`


バージョン0.12.3

2018年4月26日リリース

  • Request.get_json()は任意のエンコーディングを受け入れなくなりました。 着信JSONは、 RFC 8259 に従ってUTF-8を使用してエンコードする必要がありますが、FlaskはUTF-8、-16、または-32を自動検出します。 :issue: `2692`
  • python -m flaskを使用する場合のインポートに関するPythonの警告を修正しました。 :issue: `2666`
  • 場合によっては、無効なRangeリクエストによって引き起こされるValueErrorを修正します。


バージョン0.12.2

2017年5月16日リリース

  • Windowsのsafe_joinのバグを修正しました。


バージョン0.12.1

2017年3月31日リリース

  • インポートされたアプリケーションモジュール内でImportErrorが発生したときに、flask runNoAppExceptionが表示されないようにします。
  • Python3のapp.config.from_pyfileのエンコード動作を修正しました。 :issue: `2118`
  • app.runのデフォルト値として存在する場合は、SERVER_NAME構成を使用します。 :issue: `2109`:pr:` 2152`
  • KeyboardInterruptなどのBaseExceptionがリクエストハンドラで発生した場合は、Noneの代わりに例外オブジェクトを使用してctx.auto_popを呼び出します。


バージョン0.12

2016年12月21日リリース、コードネームPunsch

  • cliコマンドが--versionに応答するようになりました。
  • send_fileのファイルのようなオブジェクトのMIMEタイプの推測とETagの生成は削除されました。 :issue: `104` 、: pr`1849`
  • send_fileでのMIMEタイプの推測が大音量で失敗し、application/octet-streamにフォールバックしなくなりました。 :pr: `1988`
  • flask.safe_joinos.path.join :pr: `1730` のような複数のパスに参加できるようにします
  • 内部サーバーエラーを返す代わりに、開発サーバーをクラッシュさせた動作の変更を元に戻します。 :pr: `2006`
  • 通常のリクエストディスパッチとエラーハンドラの両方の応答ハンドラを正しく呼び出します。
  • アプリロガーのロガー伝播をデフォルトで無効にします。
  • send_fileで範囲要求のサポートを追加します。
  • app.test_clientには、client.getごとではなく、直接設定できるようになったプリセットのデフォルト環境が含まれています。
  • PyPy3で実行しているときのクラッシュを修正しました。 :pr: `1814`


バージョン0.11.1

2016年6月7日リリース

  • FLASK_APP=foobar/__init__.pyが機能しなかったバグを修正しました。 :pr: `1872`


バージョン0.11

2016年5月29日リリース、コードネームAbsinthe

  • トップレベル配列をflask.jsonify()にシリアル化するためのサポートが追加されました。 これにより、古いブラウザにセキュリティリスクが発生します。 詳細については、 JSONセキュリティを参照してください。
  • before_render_templateシグナルを追加しました。
  • **kwargsflask.Test.test_client()に追加して、flask.Flask.test_client_classのコンストラクターへの追加のキーワード引数の受け渡しをサポートします。
  • set-cookieの動作を制御するSESSION_REFRESH_EACH_REQUEST構成キーが追加されました。 Trueに設定すると、永続セッションがリクエストごとに更新され、有効期間が延長されます。Falseに設定すると、セッションが実際に変更された場合にのみ変更されます。 非永続セッションはこれによる影響を受けず、ブラウザウィンドウが閉じると常に期限切れになります。
  • Flaskが受信データのカスタムJSONmimetypeをサポートするようになりました。
  • ビュー関数から(response, headers)の形式でタプルを返すためのサポートが追加されました。
  • flask.Config.from_json()を追加しました。
  • flask.Flask.config_classを追加しました。
  • flask.Config.get_namespace()を追加しました。
  • テンプレートは、デバッグモード以外で自動的に再ロードされなくなりました。 これは、新しいTEMPLATES_AUTO_RELOAD構成キーを使用して構成できます。
  • Python3.3の名前空間ローダーの制限に対する回避策を追加しました。
  • Python3.3の名前空間パッケージを使用する場合の明示的なルートパスのサポートが追加されました。
  • クリックCLIシステムを介してローカルデバッグサーバーを起動するための flask およびflask.cliモジュールを追加しました。 これは、古いflask.run()方式よりも推奨されます。これは、設計が異なるため、より高速で信頼性が高く、Flask-Scriptに置き換わるためです。
  • 特定のクラスに一致するエラーハンドラーが最初にチェックされるようになりました。これにより、HTTP例外のサブクラスである例外をキャッチできます(werkzeug.exceptions内)。 これにより、拡張機能の作成者は、デフォルトで選択したHTTPエラーが発生する例外を作成できますが、必要に応じてカスタムエラーハンドラーでキャッチできます。
  • flask.Config.from_mapping()を追加しました。
  • デバッグが無効になっている場合でも、Flaskはデフォルトでログに記録するようになりました。 ログ形式はハードコードされていますが、デフォルトのログ処理はLOGGER_HANDLER_POLICY構成キーを使用して無効にできます。
  • 非推奨のモジュール機能を削除しました。
  • EXPLAIN_TEMPLATE_LOADING構成フラグを追加しました。これを有効にすると、Flaskにテンプレートの検索方法を説明するように指示します。 これは、間違ったテンプレートがロードされたときにユーザーがデバッグするのに役立ちます。
  • テンプレートのロード用に登録された順序でブループリントの処理を実施します。
  • テストスイートをpy.testに移植しました。
  • request.get_json()を優先して、request.jsonを非推奨にしました。
  • jsonify()メソッドに「pretty」および「compressed」セパレーター定義を追加します。 JSONIFY_PRETTYPRINT_REGULAR=Falseの場合、区切り文字の後にデフォルトで含まれている不要な空白を削除することにより、JSON応答サイズを削減します。
  • UNIXテキストファイルは改行で終わるのが慣例であり、この改行がない場合、一部のクライアントはうまく処理できないため、JSON応答は改行文字で終了するようになりました。 これは元々 https://github.com/postmanlabs/httpbin/issues/168 の一部として登場しました。 :pr: `1262`
  • ユーザーが小文字バージョンのoptionsでオーバーライドルールを登録した場合、自動的に提供されるOPTIONSメソッドが正しく無効になるようになりました。 :issue: `1288`
  • flask.json.jsonifydatetime.dateタイプをサポートするようになりました。 :pr: `1326`
  • すでにキャッチされた例外の例外情報をコンテキストティアダウンハンドラーにリークしないでください。 :pr: `1393`
  • カスタムJinja環境サブクラスを許可します。 :pr: `1422`
  • 拡張開発ガイドラインを更新しました。
  • flask.gpop()メソッドとsetdefaultメソッドが追加されました。
  • デフォルトでflask.templating.render_template_stringの自動エスケープをオンにします。 :pr: `1515`
  • flask.extは非推奨になりました。 :pr: `1484`
  • send_from_directoryは、サーバーOSでファイル名が無効な場合に、BadRequestを発生させるようになりました。 :pr: `1763`
  • JSONIFY_MIMETYPE構成変数を追加しました。 :pr: `1728`
  • ティアダウン処理中の例外により、不適切なアプリケーションコンテキストが長引くことはなくなりました。
  • 壊れたtest_appcontext_signals()テストケースを修正しました。
  • flask.helpers.find_package()AttributeErrorを発生させ、is_package()メソッドなしでPEP302インポートフックを使用した場合に発生する理由を説明する有用なメッセージを表示します。
  • リクエストまたはアプリのコンテキストを入力する前に発生した例外がティアダウンハンドラーに渡される問題を修正しました。
  • 絶対URLが要求されたときに、テストクライアントの要求からクエリパラメーターが削除される問題を修正しました。
  • @before_first_requestを意図したとおりにデコレータにしました。
  • 名前付きのファイルストリームを送信するときのetagsのバグを修正しました。
  • send_from_directoryがアプリケーションのルートパスに正しく展開されない問題を修正しました。
  • 呼び出し後にフラグを反転するように、最初のリクエストハンドラの前のロジックを変更しました。 これにより、潜在的に危険であるがおそらく許可されるべきであるいくつかの使用が可能になります。
  • app.url_build_error_handlersのハンドラーがBuildErrorを再レイズするときのPython3のバグを修正しました。


バージョン0.10.1

2013年6月14日リリース

  • |tojsonが一重引用符を引用していなかったため、HTML属性でフィルターが正しく機能しなかった問題を修正しました。 これで、そのフィルターを一重引用符で囲まれた属性で使用できるようになりました。 これにより、angular.jsでそのフィルターを簡単に使用できるようになります。
  • セッションシステムに戻るバイト文字列のサポートが追加されました。 これは、トークン検証用のバイナリデータをセッションに入れる一般的なケースとの互換性を壊しました。
  • 同じエンドポイントに対して同じメソッドを2回登録すると、例外が誤ってトリガーされる問題を修正しました。


バージョン0.10

2013年6月13日リリース、コードネームLimoncello

  • 秘密鍵が漏洩した場合に攻撃者が及ぼす可能性のある影響を制限するために、デフォルトのCookieシリアル化形式をpickleからJSONに変更しました。 詳細については、バージョン0.10 を参照してください。
  • 既存のtemplate_filterメソッドファミリーに加えて、template_testメソッドを追加しました。
  • 既存のtemplate_filterメソッドファミリーに加えて、template_globalメソッドを追加しました。
  • x-sendfileのcontent-lengthヘッダーを設定します。
  • tojsonフィルターは、HTML5パーサーのスクリプトブロックをエスケープしないようになりました。
  • テンプレートで使用されるtojsonは、デフォルトで安全になりました。 これは、エスケープ動作が異なるために許可されました。
  • すでに使用されているエンドポイントに新しい関数を登録しようとすると、Flaskでエラーが発生するようになりました。
  • simplejsonのラッパーモジュールを追加し、datetimeオブジェクトのデフォルトのシリアル化を追加しました。 これにより、FlaskまたはFlask拡張機能によるJSONの処理方法をはるかに簡単にカスタマイズできます。
  • 非推奨の内部flask.sessionモジュールエイリアスを削除しました。 代わりにflask.sessionsを使用してセッションモジュールを取得します。 これをflask.sessionセッションプロキシと混同しないでください。
  • テンプレートは、リクエストコンテキストなしでレンダリングできるようになりました。 requestsession、およびgオブジェクトは使用できず、ブループリントのコンテキストプロセッサは呼び出されないため、動作は少し異なります。
  • 構成オブジェクトは、デフォルトでインポートされたテンプレートでも使用できるようにするコンテキストプロセッサを介さずに、実際のグローバルとしてテンプレートで使用できるようになりました。
  • 非ASCIIエンコードのJSONを生成するオプションが追加されました。これにより、ネットワークを介して送信されるバイト数が少なくなります。 flask.json.dumpsがデフォルトでバイト文字列を返すことを期待する可能性のある既存のライブラリと混同しないようにデフォルトで無効になっています。
  • flask.gは、リクエストコンテキストではなくアプリコンテキストに保存されるようになりました。
  • flask.gは、存在しないアイテムでエラーが発生しないようにするためのget()メソッドを取得しました。
  • flask.gin演算子とともに使用して、定義内容を確認できるようになりました。これは反復可能であり、保存されているすべての属性を生成します。
  • flask.Flask.request_globals_classflask.Flask.app_ctx_globals_classに名前が変更されました。これは、0.10以降の名前よりも適切な名前です。
  • requestsessiongもプロキシとしてテンプレートコンテキストに追加され、インポートされたテンプレートで使用できるようになりました。 ただし、マクロの外部で使用するとキャッシュが発生する可能性があるため、これらには十分注意する必要があります。
  • プロキシ例外が渡された場合、Flaskが間違ったエラーハンドラーを呼び出すことはなくなりました。
  • ドメイン名で意図したとおりに機能しないローカルホストのChromeのCookieの回避策を追加しました。
  • Google Chromeでより適切に機能するように、セッションからCookie値のデフォルトを選択するためのロジックを変更しました。
  • 点滅テストを簡素化するmessage_flashed信号を追加しました。
  • グリーンレットの操作を改善するために、リクエストコンテキストのコピーのサポートが追加されました。
  • カスタムJSONHTTP例外サブクラスを削除しました。 それらに依存していた場合は、簡単に再導入できます。 ただし、インターフェイスに欠陥があるため、これらを使用することは強くお勧めしません。
  • Pythonの要件が変更されました。Python3.3ポートの準備をするためにPython2.6または2.7が必要になりました。
  • 分解システムへの例外の通知方法を変更しました。 これは、エラー処理プロセスの途中で何かが例外を処理する場合に、より信頼性が高くなりました。
  • デバッグモードでのリクエストコンテキストの保存により、例外情報が保持されるようになりました。これは、ティアダウンハンドラーがエラーと成功のケースを区別できることを意味します。
  • JSONIFY_PRETTYPRINT_REGULAR構成変数を追加しました。
  • Flaskは、異なるワーカー間でハッシュシードが異なるためにHTTPキャッシュを破棄しないように、デフォルトでJSONキーを注文するようになりました。
  • appcontext_pushedおよびappcontext_popped信号を追加しました。
  • 組み込みのrunメソッドは、実行するデフォルトのポートを選択するときにSERVER_NAMEを考慮に入れるようになりました。
  • 古いflask.request.jsonプロパティの代わりにflask.request.get_json()を追加しました。


バージョン0.9

2012年7月1日リリース、コードネームCampari

  • flask.Request.on_json_loading_failed()は、デフォルトでJSON形式の応答を返すようになりました。
  • flask.url_for()関数は、生成されたリンクへのアンカーを生成できるようになりました。
  • flask.url_for()関数は、特定のHTTPメソッドに固有のURLルールを明示的に生成できるようになりました。
  • Loggerは、明示的に設定されていない場合にのみデバッグログ設定を返すようになりました。
  • リクエストをシャットダウンするときに、WSGI環境とリクエストオブジェクト間の循環依存関係の登録を解除します。 つまり、応答がWSGIサーバーに返された後、環境werkzeug.requestNoneになりますが、ユーザーが循環を作成しない限り、CPythonでガベージコレクターを使用してリクエストを破棄する必要がないという利点があります。依存関係自体。
  • セッションはコールバック後に保存されるようになったため、セッションペイロードがセッションに保存されている場合でも、リクエスト後のコールバックでセッションペイロードを変更できます。
  • flask.Flaskクラスは、可能であれば(必要な最初のパラメーター)、提供されたインポート名のインポートを回避し、Flaskインスタンスをプログラムで構築するツールに利益をもたらします。 Flaskクラスは、カスタムモジュールフックを備えたシステムでのインポートの使用にフォールバックします。 Google App Engine、またはインポート名がPython 2.7より前のzipアーカイブ(通常は.egg)内にある場合。
  • ブループリントには、アプリケーション全体にカスタムテンプレートフィルターを追加するためのデコレーターflask.Blueprint.app_template_filter()が追加されました。
  • FlaskクラスとBlueprintクラスには、アプリケーション全体でカスタムテンプレートフィルターを追加するための非デコレーターメソッドflask.Flask.add_template_filter()およびflask.Blueprint.add_app_template_filter()が含まれるようになりました。
  • flask.get_flashed_messages()関数では、category_filter引数を使用して、フラッシュされたメッセージカテゴリを個別のブロックにレンダリングできるようになりました。
  • flask.Flask.run()メソッドは、Noneの場合のデフォルト値を使用して、hostおよびport引数に対してNoneを受け入れるようになりました。 これにより、構成値を使用してrunを呼び出すことができます。 app.run(app.config.get('MYHOST'), app.config.get('MYPORT'))、構成ファイルが提供されているかどうかに関係なく適切な動作をします。
  • flask.render_template()メソッドは、反復可能なテンプレート名または単一のテンプレート名のいずれかを受け入れるようになりました。 以前は、単一のテンプレート名のみを受け入れていました。 イテラブルでは、最初に見つかったテンプレートがレンダリングされます。
  • flask.Flask.app_context()を追加しました。これは、リクエストコンテキストと非常によく似ていますが、現在のアプリケーションへのアクセスのみを提供します。 これにより、アクティブなリクエストコンテキストなしでのURL生成のサポートも追加されます。
  • ビュー関数は、最初のインスタンスがflask.Responseのインスタンスであるタプルを返すことができるようになりました。 これにより、ビュー関数からjsonify(error="error msg"), 400を返すことができます。
  • FlaskおよびBlueprintは、flask.Flask.send_static_file()(デフォルトの静的ファイルハンドラーに使用)を使用するときにFlaskから静的ファイルを提供する動作をオーバーライドするサブクラスのget_send_file_max_age()フックを提供するようになりました)およびsend_file()。 このフックにはファイル名が提供されます。これにより、たとえば、ファイル拡張子によってキャッシュコントロールを変更できます。 send_fileおよび静的ファイルのデフォルトの最大経過時間は、デフォルトのget_send_file_max_age実装で使用される新しいSEND_FILE_MAX_AGE_DEFAULT構成変数を介して構成できます。
  • 外部ストレージを使用するセッション実装でメッセージの点滅を中断する可能性があるセッション実装の仮定を修正しました。
  • 関数からのタプル戻り値の動作を変更しました。 これらは応答オブジェクトへの引数ではなくなり、定義された意味を持つようになりました。
  • flask.Flask.request_globals_classを追加して、各リクエストの g インスタンスの作成時に特定のクラスを使用できるようにしました。
  • 登録時にメソッドを強制的に追加する関数を表示するためにrequired_methods属性を追加しました。
  • flask.after_this_request()を追加しました。
  • flask.stream_with_context()と、予期しない動作を発生させることなくコンテキストを複数回プッシュする機能が追加されました。


バージョン0.8.1

2012年7月1日リリース

  • 文書化されていないflask.sessionモジュールがPython2.5で正しく機能しない問題を修正しました。 使用すべきではありませんが、パッケージマネージャーにいくつかの問題を引き起こしました。


バージョン0.8

2011年9月29日リリース、コードネームRakija

  • セッションサポートをセッションインターフェイスにリファクタリングし、Flaskクラスをオーバーライドせずにセッションの実装を変更できるようにしました。
  • 空のセッションCookieが自動的に適切に削除されるようになりました。
  • ビュー関数は、自動OPTIONS実装の取得をオプトアウトできるようになりました。
  • HTTP例外とBadRequestエラーをトラップして、トレースバックに正常に表示されるようになりました。
  • デバッグモードのFlaskは、いくつかの一般的な問題を検出し、それらについて警告しようとします。
  • デバッグモードのFlaskは、最初のリクエストが処理された後にビューがアタッチされた場合、アサーションエラーで文句を言うようになりました。 これにより、ユーザーがビューコードを事前にインポートするのを忘れた場合に、より早いフィードバックが得られます。
  • 最初のリクエストの開始時に1回だけトリガーされるコールバックを登録する機能が追加されました。 (Flask.before_first_request()
  • 不正な形式のJSONデータは、値エラーではなく、不正なリクエストHTTP例外をトリガーするようになりました。これは、通常、処理されない場合、500内部サーバーエラーになります。 これは後方互換性のない変更です。
  • アプリケーションには、リソースとモジュールが配置されているルートパスだけでなく、実行時に変更されるファイル(アップロードなど)をドロップするための指定された場所であるインスタンスパスも含まれるようになりました。 また、これは概念的にはインスタンスに依存し、バージョン管理の外部にあるため、構成ファイルなどを配置するのに最適な場所です。 詳細については、インスタンスフォルダを参照してください。
  • APPLICATION_ROOT構成変数を追加しました。
  • session_transaction()を実装して、テスト環境からセッションを簡単に変更できるようにしました。
  • テストクライアントを内部でリファクタリングしました。 APPLICATION_ROOT構成変数とSERVER_NAMEが、デフォルトとしてテストクライアントによって適切に使用されるようになりました。
  • プラグ可能な(クラスベースの)ビューのより簡単な装飾をサポートするためにflask.views.View.decoratorsが追加されました。
  • テストクライアントを「with」ステートメントとともに使用すると、ティアダウンハンドラーの実行がトリガーされない問題を修正しました。
  • セッションCookieパラメータのより細かい制御が追加されました。
  • メソッドビューへのHEADリクエストは、ハンドラーが実装されていない場合、getメソッドに自動的にディスパッチされるようになりました。
  • 拡張機能をインポートするための仮想flask.extパッケージを実装しました。
  • 例外のコンテキスト保存は、Flask自体の不可欠なコンポーネントであり、テストクライアントのコンポーネントではなくなりました。 これにより、一部の内部ロジックがクリーンアップされ、単体テストでのリクエストコンテキストの暴走の可能性が低くなります。
  • ブループリントまたはモジュールが含まれている場合に、Jinja2環境のlist_templatesメソッドが正しい名前を返さない問題を修正しました。


バージョン0.7.2

2011年7月6日リリース

  • ブループリントでURLプロセッサが正しく機能しない問題を修正しました。


バージョン0.7.1

2011年6月29日リリース

  • 2.5の互換性を壊した不足している将来のインポートを追加しました。
  • ブループリントの無限リダイレクトの問題を修正しました。


バージョン0.7

2011年6月28日リリース、コードネームGrappa

  • サブクラスがOPTIONS応答のデフォルトの動作を変更するために使用できるmake_default_options_response()を追加しました。
  • バインドされていないローカルは、AttributeErrorではなく適切なRuntimeErrorを発生させるようになりました。
  • ファイルオブジェクトに基づくMIMEタイプの推測とetagのサポートは、信頼性が低いため、flask.send_file()では非推奨になりました。 代わりにファイル名を渡すか、独自のetagを添付して、適切なmimetypeを手動で提供してください。
  • モジュールの静的ファイル処理では、静的フォルダーの名前を明示的に指定する必要があります。 以前の自動検出は信頼性が低く、GoogleのAppEngineで問題を引き起こしていました。 1.0まで、古い動作は引き続き機能しますが、依存関係の警告が発行されます。
  • Flaskがjythonで実行される問題を修正しました。
  • 以前はDEBUGのみにリンクされ、現在はDEBUGまたは [のいずれかにリンクされている例外伝播の設定を反転するために使用できるPROPAGATE_EXCEPTIONS構成変数を追加しました。 X195X]。
  • Flaskは、add_url_rule関数を介して追加されたルールに内部的に依存しなくなり、URLマップに追加された通常のwerkzeugルールも受け入れることができるようになりました。
  • フラスコアプリケーションオブジェクトにendpointメソッドを追加しました。これにより、デコレータを使用して任意のエンドポイントへのコールバックを登録できます。
  • 0.6で誤って導入されたDateの代わりに、静的ファイル送信にLast-Modifiedを使用します。
  • ローダー作成プロセスをオーバーライドするためにcreate_jinja_loaderを追加しました。
  • config.from_pyfileのサイレントフラグを実装しました。
  • 例外が発生したかどうかに関係なく、リクエストの最後に実行する必要がある関数用に、teardown_requestデコレータを追加しました。 また、after_requestの動作が変更されました。 例外が発生したときに実行されなくなりました。 新しいティアダウン処理へのアップグレードを参照してください
  • flask.has_request_context()を実装
  • 非推奨のinit_jinja_globals。 同じ機能を実現するには、代わりにcreate_jinja_environment()メソッドをオーバーライドしてください。
  • flask.safe_join()を追加しました
  • 自動JSONリクエストデータの解凍で、charsetmimetypeパラメーターが確認されるようになりました。
  • セッションにメッセージがない場合は、flask.get_flashed_messages()のセッションを変更しないでください。
  • before_requestハンドラーは、エラーのあるリクエストを中止できるようになりました。
  • ユーザー例外ハンドラーを定義することはできません。 これにより、リクエスト処理中に発生する可能性のある特定のエラー(データベース接続エラー、リモートリソースからのタイムアウトなど)に対して、中央ハブからカスタムエラーメッセージを提供できます。
  • ブループリントは、ブループリント固有のエラーハンドラーを提供できます。
  • 一般的な Pluggable Views (クラスベースのビュー)を実装しました。


バージョン0.6.1

2010年12月31日リリース

  • デフォルトのOPTIONS応答が、Allowヘッダー内のすべての有効なメソッドを公開していなかった問題を修正しました。
  • Jinja2テンプレート読み込み構文で、テンプレート読み込みパスの前に「./」を使用できるようになりました。 以前は、これによりモジュールのセットアップで問題が発生していました。
  • モジュールのサブドメイン設定が静的フォルダーで無視される問題を修正しました。
  • ホストサーバーがWindowsベースのオペレーティングシステムであり、クライアントがバックスラッシュを使用してファイルが公開されているディレクトリをエスケープする場合に、クライアントが任意のファイルをダウンロードできるセキュリティの問題を修正しました。


バージョン0.6

2010年7月27日リリース、コードネームウイスキー

  • アフターリクエスト関数は、登録の逆の順序で呼び出されるようになりました。
  • アプリケーションがURLルールにメソッドとして「OPTIONS」を明示的に追加しない限り、OPTIONSはFlaskによって自動的に実装されるようになりました。 この場合、自動OPTIONS処理は開始されません。
  • モジュール用の静的フォルダーがない場合でも、静的ルールが適用されるようになりました。 これは、静的フォルダーが.ymlファイルのマッピングの一部である場合に静的フォルダーを削除するGAEを支援するために実装されました。
  • configは、configとしてテンプレートで使用できるようになりました。
  • コンテキストプロセッサは、レンダリング関数に直接渡される値を上書きしなくなりました。
  • 新しいMAX_CONTENT_LENGTH構成値を使用して着信要求データを制限する機能が追加されました。
  • flask.Module.add_url_rule()メソッドのエンドポイントは、アプリケーションオブジェクトの同じ名前の関数と一貫性を保つために、オプションになりました。
  • ビューでの応答オブジェクトインスタンスの作成を簡素化するflask.make_response()関数が追加されました。
  • ブリンカーに基づくシグナリングサポートが追加されました。 この機能は現在オプションであり、拡張機能やアプリケーションで使用される予定です。 使用する場合は、必ず点滅器を装着してください。
  • URLアダプターの作成方法をリファクタリングしました。 このプロセスは、create_url_adapter()メソッドで完全にカスタマイズできるようになりました。
  • モジュールは、URLプレフィックスだけでなく、サブドメインに登録できるようになりました。 これにより、モジュール全体を構成可能なサブドメインにバインドできます。


バージョン0.5.2

2010年7月15日リリース

  • モジュールが使用されたときにディレクトリからテンプレートをロードする際の別の問題を修正しました。


バージョン0.5.1

2010年7月6日リリース

  • モジュールが使用されている場合のディレクトリからのテンプレートのロードに関する問題を修正します。


バージョン0.5

2010年7月6日リリース、コードネームCalvados

  • サーバー名を指定できないことによって引き起こされたサブドメインのバグを修正しました。 サーバー名は、SERVER_NAME構成キーで設定できるようになりました。 このキーは、セッションCookieのクロスサブドメイン全体を設定するためにも使用されるようになりました。
  • 自動エスケープは、すべてのテンプレートでアクティブではなくなりました。 代わりに、.html.htm.xml、および.xhtmlに対してのみアクティブになります。 テンプレート内では、この動作はautoescapeタグで変更できます。
  • 内部でフラスコをリファクタリングしました。 現在、複数のファイルで構成されています。
  • flask.send_file()はetagを発行し、条件付き応答を実行する機能が組み込まれています。
  • (一時的に)zip形式のアプリケーションのサポートを終了しました。 これはめったに使用されない機能であり、いくつかの紛らわしい動作につながりました。
  • パッケージごとのテンプレートと静的ファイルディレクトリのサポートが追加されました。
  • モジュールのサポートが改善されたため、0.5では使用されなくなったcreate_jinja_loaderのサポートが削除されました。
  • 任意のディレクトリからファイルを公開するためのヘルパー関数が追加されました。


バージョン0.4

2010年6月18日リリース、コードネームRakia

  • モジュールからアプリケーション全体のエラーハンドラーを登録する機能が追加されました。
  • after_request()ハンドラーは、リクエストが例外で終了し、エラー処理ページが起動した場合にも呼び出されるようになりました。
  • テストクライアントには、リクエストコンテキストをもう少し長く保持する機能がありません。 これは、テストのためにリクエストスタックをポップしないカスタムリクエストをトリガーするためにも使用できます。
  • Python標準ライブラリはロガーをキャッシュするため、ロガーの名前は、単体テストをより適切にサポートするように構成できるようになりました。
  • ユニットテストヘルパーをアクティブ化できるTESTINGスイッチを追加しました。
  • デバッグが有効になっている場合、ロガーはDEBUGモードに切り替わります。


バージョン0.3.1

2010年5月28日リリース

  • flask.Config.from_envvar()のエラー報告のバグを修正しました
  • フラスコから未使用のコードを削除しました
  • リリースには、開発用の残りのファイル(テーマ用の.gitフォルダー、zipおよびpdfファイルで作成されたドキュメント、および一部の.pycファイル)が含まれなくなりました。


バージョン0.3

2010年5月28日リリース、コードネームSchnaps

  • フラッシュメッセージのカテゴリのサポートが追加されました。
  • これで、アプリケーションはlogging.Handlerを構成し、デバッグモードでないときに、要求処理の例外をそのロガーにログに記録します。 これにより、たとえばサーバーエラーに関するメールを受信できるようになります。
  • コンソールで再生するためにwithステートメントを使用する必要のないコンテキストバインディングのサポートが追加されました。
  • リクエストコンテキストがwithステートメント内で利用できるようになり、リクエストコンテキストをさらにプッシュしたりポップしたりできるようになりました。
  • 構成のサポートが追加されました。


バージョン0.2

2010年5月12日リリース、コードネームイエーガーマイスター

  • さまざまなバグ修正
  • 統合されたJSONサポート
  • get_template_attribute()ヘルパー関数を追加しました。
  • add_url_rule()もビュー機能を登録できるようになりました。
  • リファクタリングされた内部リクエストディスパッチ。
  • サーバーは、Chromeの問題を修正するために、デフォルトで127.0.0.1をリッスンするようになりました。
  • 外部URLのサポートが追加されました。
  • send_file()のサポートが追加されました
  • プラグ可能なアプリケーションをより適切にサポートするためのモジュールサポートと内部リクエスト処理リファクタリング。
  • セッションは、セッションごとに永続的に設定できるようになりました。
  • 秘密鍵の欠落に関するエラー報告が改善されました。
  • GoogleAppengineのサポートが追加されました。


バージョン0.1

2010年4月16日リリース

  • 最初の公開プレビューリリース。