變化?

版本2.0.0?

未發布的

  • 放棄對Python2和3.5的支持。

  • JSON支持不再使用simplejson。要使用另一個JSON模塊,請重寫 app.json_encoderjson_decoder . #3555

  • 這個 encoding JSON函數的選項已棄用。 #3562

  • 經過 script_info 不推薦使用應用程序工廠函數。這不是便攜式的 flask 命令。使用 click.get_current_context().obj 如果需要的話。 #3552

  • 當應用程序在查找命令時加載失敗時,CLI會顯示更好的錯誤消息。 #2741

  • 添加 sessions.SessionInterface.get_cookie_name() 允許動態設置會話cookie名稱。 #3369

  • 添加 Config.from_file() 使用任意文件加載程序加載配置,例如 toml.loadjson.load . Config.from_json() 不贊成這樣做。 #3398

  • 這個 flask run 命令只會延遲重新加載時的錯誤。初始調用期間出現的錯誤將導致服務器立即退出并進行回溯。 #3431

  • send_file() raises a ValueError when passed an io object in text mode. Previously, it would respond with 200 OK and an empty file. #3358

  • 使用特殊證書時,請檢查加密庫而不是PyOpenSSL。 #3492

  • 指定工廠函數時 FLASK_APP ,可以傳遞關鍵字參數。 #3553

  • 加載時 .env.flaskenv 文件,則當前工作目錄不再更改為該文件的位置。 #3560

  • 當返回 (response, headers) 元組從視圖中,標頭替換而不是擴展響應上的現有標頭。例如,這允許設置 Content-Type 對于 jsonify() . 使用 response.headers.extend() 如果需要延伸。 #3628

  • 這個 Scaffold 類為 FlaskBlueprint 類。 Blueprint 信息存儲在屬性中,就像 Flask ,而不是不透明的lambda函數。這是為了提高一致性和可維護性。 #3215

  • 包括 samesitesecure 刪除會話cookie時的選項。 #3726

  • 支持通過A pathlib.Pathstatic_folder . #3579

  • send_file and send_from_directory are wrappers around the implementations in werkzeug.utils. #3828

  • 一些 send_file 參數已重命名,舊名稱已棄用。 attachment_filename 已重命名為 download_name . cache_timeout 已重命名為 max_age . #3828

  • send_file passes download_name even if as_attachment=False by using Content-Disposition: inline. #3828

  • send_file sets conditional=True and max_age=None by default. Cache-Control is set to no-cache if max_age is not set, otherwise public. This tells browsers to validate conditional requests instead of using a timed cache. #3828

  • helpers.safe_join is deprecated. Use werkzeug.utils.safe_join instead. #3828

版本1.1.2?

發布日期:2020-04-03

  • 在運行 flask 在Windows上使用外部調試器的命令。 #3297

  • 如果 Flask static_folder 參數以斜杠結尾。 #3452

1.1.1版本?

發布日期:2019-07-08

  • 這個 flask.json_available 為了與某些擴展兼容,重新添加了標志。它在使用時會發出一個棄用警告,并將在版本2.0.0中刪除。 #3288

版本1.1.0?

發布日期:2019-07-04

  • 將Werkzeug版本的最小值降至>=0.15。

  • 放棄對python 3.4的支持。

  • 的錯誤處理程序 InternalServerError500 將始終傳遞 InternalServerError . 如果由于未處理的異常而調用了它們,則原始異?,F在可以作為 e.original_exception 而不是直接傳遞給處理程序。如果處理程序是針對基的,則也是如此 HTTPException . 這使得錯誤處理程序的行為更加一致。 #3266

    • Flask.finalize_request() 為所有未處理的異常調用,即使沒有 500 錯誤處理程序。

  • Flask.logger takes the same name as Flask.name (the value passed as Flask(import_name). This reverts 1.0's behavior of always logging to "flask.app", in order to support multiple apps in the same process. A warning will be shown if old configuration is detected that needs to be moved. #2866

  • flask.RequestContext.copy() includes the current session object in the request context copy. This prevents session pointing to an out-of-date object. #2935

  • 使用內置的requestContext,主機頭中不可打印的unicode字符將導致HTTP 400響應,而不是以前的HTTP 500。 #2994

  • send_file() supports PathLike objects as described in PEP 0519, to support pathlib in Python 3. #3059

  • send_file() supports BytesIO partial content. #2957

  • open_resource() accepts the "rt" file mode. This still does the same thing as "r". #3163

  • 這個 MethodView.methods 基類中的屬性集由子類使用。 #3138

  • Flask.jinja_options is a dict instead of an ImmutableDict to allow easier configuration. Changes must still be made before creating the environment. #3190

  • 燒瓶的 JSONMixin 對于請求和響應,包裝器被移到了Werkzeug中。使用Werkzeug版本,帶有燒瓶專用支架。這將Werkzeug依賴關系提升到>=0.15。 #3125

  • 這個 flask 命令入口點被簡化,以利用Werkzeug 0.15更好的重載支持。這將Werkzeug依賴關系提升到>=0.15。 #3022

  • 支持 static_url_path 以正斜杠結尾。 #3134

  • 支架空置 static_folder 無需設置空 static_url_path 也。 #3124

  • jsonify() supports dataclasses.dataclass objects. #3195

  • 允許自定義 Flask.url_map_class 用于路由。 #3069

  • 開發服務器端口可以設置為0,這將告訴操作系統選擇一個可用的端口。 #2926

  • 返回值來自 cli.load_dotenv() 更符合文檔。它會回來的 False 如果沒有安裝python dotenv,或者給定的路徑不是文件。 #2937

  • 信令支持為 connect_via 方法在未安裝閃爍器庫時。 #3208

  • 添加一個 --extra-files 選擇權 flask run CLI命令,指定將在更改時觸發重新加載程序的額外文件。 #2897

  • 允許從視圖函數返回字典。類似于返回字符串將生成 text/html 響應,返回dict將調用 jsonify 產生一個 application/json 反應。 #3111

  • 藍圖有一個 cli 單擊“組類似” app.cli . 使用藍圖注冊的CLI命令將作為 flask 命令。 #1357 .

  • 將測試客戶機用作上下文管理器時 (with client: ),則當塊退出時,將彈出所有保留的請求上下文,以確保正確清理嵌套上下文。 #3157

  • 當視圖返回類型不受支持時,顯示更好的錯誤消息。 #3214

  • flask.testing.make_test_environ_builder() has been deprecated in favour of a new class flask.testing.EnvironBuilder. #3232

  • 這個 flask run 如果Python不是使用SSL支持構建的,則命令不再失敗。使用 --cert 選項將顯示相應的錯誤消息。 #3211

  • URL匹配現在發生在請求上下文被推送之后,而不是在它被創建時。這允許自定義URL轉換器訪問應用程序和請求上下文,例如查詢數據庫中的id。 #3088

版本1.0.4?

發布日期:2019-07-04

  • 關鍵信息 BadRequestKeyError 不再在調試模式外清除,因此錯誤處理程序仍可以訪問它。這需要升級到Werkzeug 0.15.5。 #3249

  • send_file url quotes the ":" and "/" characters for more compatible UTF-8 filename support in some browsers. #3074

  • 修復了PEP451導入加載器和pytest 5.x。 #3275

  • 在stderr而不是stdout上顯示關于dotenv的消息。 #3285

1.0.3版本?

發布日期:2019-05-17

  • send_file() encodes filenames as ASCII instead of Latin-1 (ISO-8859-1). This fixes compatibility with Gunicorn, which is stricter about header encodings than PEP 3333. #2766

  • 允許自定義clis使用 FlaskGroup 設置調試標志,而不總是根據環境變量覆蓋它。 #2765

  • flask --version outputs Werkzeug's version and simplifies the Python version. #2825

  • send_file() handles an attachment_filename that is a native Python 2 string (bytes) with UTF-8 coded bytes. #2933

  • 為注冊的catch all錯誤處理程序 HTTPException 不會處理 RoutingException ,在路由過程中在內部使用。這修復了1.0中引入的意外行為。 #2986

  • 路過 json 參數 app.test_client 不推送/彈出額外的應用程序上下文。 #2900

1.0.2版本?

發布日期:2018-05-02

  • 通過合并藍圖前綴和路由之間的斜線來修復更多向后兼容性問題。 #2748

  • 修正錯誤 flask routes 無路由時的命令。 #2751

1.0.1版本?

發布日期:2018-04-29

  • 修復注冊部分(無 __name__ )作為視圖函數。 #2730

  • 不要將視圖函數返回的列表與元組相同。只有元組被解釋為響應數據。 #2736

  • 藍圖之間的額外斜線 url_prefix 并合并路由URL。這修復了1.0中的一些向后兼容性問題。 #2731 , #2742

  • 唯一陷阱 BadRequestKeyError 調試模式中的錯誤,不是全部 BadRequest 錯誤。這允許 abort(400) 繼續按預期工作。 #2735

  • 這個 FLASK_SKIP_DOTENV 環境變量可以設置為 1 跳過自動加載dotenv文件。 #2722

版本1?

發布日期:2018-04-26

  • 不再支持python 2.6和3.3。

  • 將最低依賴版本與最新穩定版本進行碰撞:werkzeug>=0.14,jinja>=2.10,itsDangerous>=0.24,單擊>=5.1。 #2586

  • 跳過 app.run 從命令行運行flask應用程序時。這樣就避免了一些調試時令人困惑的行為。

  • 更改的默認值 JSONIFY_PRETTYPRINT_REGULARFalse . jsonify() 默認情況下返回壓縮格式,在調試模式下返回縮進格式。 #2193

  • Flask.__init__ accepts the host_matching argument and sets it on url_map. #1559

  • Flask.__init__ accepts the static_host argument and passes it as the host argument when defining the static route. #1559

  • send_file() supports Unicode in attachment_filename. #2223

  • 通過 _scheme 論證從 url_for()handle_url_build_error() . #2017

  • add_url_rule() accepts the provide_automatic_options argument to disable adding the OPTIONS method. #1489

  • MethodView subclasses inherit method handlers from base classes. #1936

  • 在請求開始時打開會話時導致的錯誤由應用程序的錯誤處理程序處理。 #2254

  • 獲得藍圖 json_encoderjson_decoder 覆蓋應用程序編碼器和解碼器的屬性。 #1898

  • Flask.make_response() raises TypeError instead of ValueError for bad response types. The error messages have been improved to describe why the type is invalid. #2256

  • 添加 routes 用于輸出在應用程序上注冊的路由的CLI命令。 #2259

  • 當會話cookie域是空主機名或IP地址時顯示警告,因為它們在某些瀏覽器(如chrome)中的行為可能不正確。 #2282

  • 允許IP地址作為確切的會話cookie域。 #2282

  • SESSION_COOKIE_DOMAIN is set if it is detected through SERVER_NAME. #2282

  • 自動檢測零參數應用程序工廠調用 create_appmake_appFLASK_APP . #2297

  • 工廠功能不需要采取 script_info 要使用的參數 flask 命令。如果它們接受一個參數或一個名為 script_info , the ScriptInfo 將傳遞對象。 #2319

  • FLASK_APP can be set to an app factory, with arguments if needed, for example FLASK_APP=myproject.app:create_app('dev'). #2326

  • FLASK_APP can point to local packages that are not installed in editable mode, although pip install -e is still preferred. #2414

  • 這個 View 類屬性 provide_automatic_options 設置在 as_view() ,由檢測 add_url_rule() . #2316

  • 錯誤處理將嘗試為注冊的處理程序 blueprint, code , app, code , blueprint, exception , app, exception . #2314

  • Cookie is added to the response's Vary header if the session is accessed at all during the request (and not deleted). #2288

  • test_request_context() accepts subdomain and url_scheme arguments for use when building the base URL. #1621

  • 集合 APPLICATION_ROOT'/' 默認情況下。當設置為時,這已經是隱式默認值。 None .

  • TRAP_BAD_REQUEST_ERRORS is enabled by default in debug mode. BadRequestKeyError has a message with the bad key in debug mode instead of the generic bad request message. #2348

  • 允許向注冊新標簽 TaggedJSONSerializer 以支持在會話cookie中存儲其他類型。 #2352

  • 只有在請求尚未被推送到上下文堆棧中時才打開會話。這允許 stream_with_context() 生成器訪問包含視圖使用的同一會話。 #2354

  • 添加 json 測試客戶端請求方法的關鍵字參數。這將把給定的對象作為JSON轉儲,并設置適當的內容類型。 #2358

  • 將JSON處理提取到應用于 RequestResponse 類。這增加了 is_json()get_json() 方法對響應進行響應,使測試JSON響應更加容易。 #2358

  • 已刪除錯誤處理程序緩存,因為它導致某些異常繼承層次結構出現意外結果。如果要避免遍歷MRO,請為每個異常顯式注冊處理程序。 #2362

  • 修復已知的非UTC日期時間的JSON編碼錯誤。 #2374

  • 模板自動重新加載將支持調試模式,即使 jinja_env 已被訪問。 #2373

  • 刪除了以下舊的不推薦使用的代碼。 #2385

  • 這個 Request.json 屬性不再被棄用。 #1421

  • 支持通過A EnvironBuilderdicttest_client.open . #2412

  • 這個 flask 命令和 Flask.run() 將從中加載環境變量 .env.flaskenv 文件(如果安裝了python dotenv)。 #2416

  • 當向測試客戶機傳遞完整的URL時,將使用URL中的方案而不是 PREFERRED_URL_SCHEME . #2430

  • Flask.logger has been simplified. LOGGER_NAME and LOGGER_HANDLER_POLICY config was removed. The logger is always named flask.app. The level is only set on first access, it doesn't check Flask.debug each time. Only one format is used, not different ones depending on Flask.debug. No handlers are removed, and a handler is only added if no handlers are already configured. #2436

  • 藍圖視圖函數名不能包含點。 #2450

  • 修復一 ValueError 無效引起的 Range 在某些情況下請求。 #2526

  • 開發服務器默認使用線程。 #2529

  • 正在加載配置文件 silent=True 將忽略 ENOTDIR 錯誤。 #2581

  • 通過 --cert--key 選項到 flask run 通過HTTPS運行開發服務器。 #2606

  • 補充 SESSION_COOKIE_SAMESITE 控制 SameSite 會話cookie的屬性。 #2607

  • 補充 test_cli_runner() 要創建可調用flask cli命令進行測試的單擊運行程序。 #2636

  • 默認情況下禁用子域匹配并設置 SERVER_NAME 不會隱式啟用它。它可以通過傳遞來啟用 subdomain_matching=TrueFlask 建造師。 #2635

  • 從藍圖中剝離出一條尾隨斜線。 url_prefix 當它注冊到應用程序時。 #2629

  • Request.get_json() doesn't cache the result if parsing fails when silent is true. #2651

  • Request.get_json() no longer accepts arbitrary encodings. Incoming JSON should be encoded using UTF-8 per RFC 8259, but Flask will autodetect UTF-8, -16, or -32. #2691

  • 補充 MAX_COOKIE_SIZEResponse.max_cookie_size 控制Werkzeug何時警告瀏覽器可能忽略的大型cookie。 #2693

  • 更新了文檔主題,使文檔在小窗口中看起來更好。 #2709

  • 重新編寫教程文檔和示例項目,以采用更結構化的方法來幫助新用戶避免常見的陷阱。 #2676

版本0.12.5?

發布日期:2020-02-10

  • 將Werkzeug固定到<1.0.0。 #3497

0.12版本?

發布日期:2018-04-29

  • 重新打包0.12.3以修復包布局問題。 #2728

0.12版本?

發布日期:2018-04-26

  • Request.get_json() no longer accepts arbitrary encodings. Incoming JSON should be encoded using UTF-8 per RFC 8259, but Flask will autodetect UTF-8, -16, or -32. #2692

  • 修復使用時關于導入的python警告 python -m flask . #2666

  • 修復一 ValueError 無效引起的 Range 在某些情況下請求。

0.12版本?

發布日期:2017-05-16

  • 修復錯誤 safe_join 在Windows上。

0.12版本?

發布日期:2017-03-31

  • 預防 flask run 從展示 NoAppException 當一個 ImportError 在導入的應用程序模塊中發生。

  • 修復的編碼行為 app.config.from_pyfile 對于python 3。 #2118

  • 使用 SERVER_NAME 如果它作為默認值存在 app.run . #2109 , #2152

  • 呼叫 ctx.auto_pop 使用異常對象而不是 None ,如果 BaseExceptionKeyboardInterrupt 在請求處理程序中引發。

版本0.12?

發布日期:2016-12-21,代號:Punsch

  • cli命令現在響應 --version .

  • 中文件類對象的mimetype猜測和etag生成 send_file 已刪除。 #104 ,:pr`1849`

  • mimetype猜測 send_file 現在失敗的聲音很大,不會再回到 application/octet-stream . #1988

  • 制作 flask.safe_join 能夠連接多條路徑,比如 os.path.join #1730

  • 還原導致開發服務器崩潰的行為更改,而不是返回內部服務器錯誤。 #2006

  • 正確調用常規請求調度和錯誤處理程序的響應處理程序。

  • 默認情況下禁用應用程序記錄器的記錄器傳播。

  • 在中添加對范圍請求的支持 send_file .

  • app.test_client 包括預設的默認環境,現在可以直接設置,而不是根據 client.get .

  • 修復在pypy3下運行時的崩潰。 #1814

0.11版本?

發布日期:2016-06-07

  • 修復了一個阻止 FLASK_APP=foobar/__init__.py 從工作中。 #1872

版本0.11?

發布日期:2016-05-29,代號苦艾酒

  • 添加了對將頂級數組序列化為 flask.jsonify() . 這在古代瀏覽器中引入了安全風險。

  • 在呈現模板信號之前添加。

  • 補充 **kwargsflask.Test.test_client() 支持向的構造函數傳遞其他關鍵字參數 flask.Flask.test_client_class .

  • 補充 SESSION_REFRESH_EACH_REQUEST 控制設置cookie行為的配置鍵。如果設置為 True 如果設置為,永久會話將刷新每個請求并延長其生存期。 False 只有當會話實際修改時,才會修改它。非永久會話不受此影響,并且在瀏覽器窗口關閉時將始終過期。

  • 制作的flask支持輸入數據的自定義JSON mimetype。

  • 添加了對在表單中返回元組的支持 (response, headers) 從視圖函數。

  • 補充 flask.Config.from_json() .

  • 補充 flask.Flask.config_class .

  • 補充 flask.Config.get_namespace() .

  • 不再在調試模式之外自動重新加載模板。這可以用新的 TEMPLATES_AUTO_RELOAD 配置密鑰。

  • 為Python3.3的名稱空間加載器中的限制添加了一個變通方法。

  • 在使用Python3.3的名稱空間包時添加了對顯式根路徑的支持。

  • 補充 flask 以及 flask.cli 模塊通過click CLI系統啟動本地調試服務器。這是建議超過舊的 flask.run() 方法,因為它的工作速度更快,更可靠,由于一個不同的設計,也取代了 Flask-Script .

  • 現在首先檢查匹配特定類的錯誤處理程序,從而允許捕獲屬于HTTP異常子類的異常(在 werkzeug.exceptions ). 這使得擴展作者可以創建異常,這些異常在默認情況下會導致他們所選擇的HTTP錯誤,但是如果需要,可以使用自定義錯誤處理程序捕獲。

  • 補充 flask.Config.from_mapping() .

  • Flask現在默認情況下將記錄日志,即使禁用了調試。日志格式現在是硬編碼的,但是可以通過 LOGGER_HANDLER_POLICY 配置密鑰。

  • 已刪除不推薦使用的模塊功能。

  • 增加了 EXPLAIN_TEMPLATE_LOADING 配置標志,啟用后將指示Flask解釋如何定位模板。這將有助于用戶在加載錯誤的模板時進行調試。

  • 按照模板加載的注冊順序強制藍圖處理。

  • 將測試套件移植到py.test。

  • 已棄用 request.json 贊成 request.get_json() .

  • 在jsonify()方法中添加“pretty”和“compressed”分隔符定義。當 JSONIFY_PRETTYPRINT_REGULAR=False 通過刪除分隔符后面默認包含的不必要的空白。

  • JSON響應現在以換行符結束,因為UNIX文本文件以換行符結束是一種慣例,當缺少換行符時,有些客戶機處理得不好。它最初是作為https://github.com/postmanlabs/httpbin/issues/168。 #1262

  • 自動提供的 OPTIONS 如果用戶使用小寫版本注冊了重寫規則,則方法現在已正確禁用。 options . #1288

  • flask.json.jsonify now supports the datetime.date type. #1326

  • 不要將已經捕獲的異常的異常信息泄漏給上下文拆分處理程序。 #1393

  • 允許自定義Jinja環境子類。 #1422

  • 更新了擴展開發指南。

  • flask.g 現在有 pop()setdefault 方法。

  • 打開自動退出 flask.templating.render_template_string 默認情況下。 #1515

  • flask.ext is now deprecated. #1484

  • send_from_directory now raises BadRequest if the filename is invalid on the server OS. #1763

  • 增加了 JSONIFY_MIMETYPE 配置變量。 #1728

  • 拆卸處理過程中的異常將不再留下壞的應用程序上下文。

  • 固定斷裂 test_appcontext_signals() 測試用例。

  • 養一個 AttributeError 在里面 flask.helpers.find_package() 帶有一條有用的消息,解釋當使用PEP 302導入掛鉤時,如果沒有 is_package() 方法。

  • 修復了在輸入要傳遞給拆卸處理程序的請求或應用程序上下文之前引發異常的問題。

  • 修復了請求絕對URL時從測試客戶端請求中刪除查詢參數的問題。

  • 制造 @before_first_request 按計劃裝修。

  • 修復了在發送名為的文件流時出現的etags錯誤。

  • 固定的 send_from_directory 未正確擴展到應用程序根路徑。

  • 更改了before first請求處理程序的邏輯,以便在調用后翻轉標志。這將允許一些潛在危險的用途,但可能是允許的。

  • 修復了當處理程序來自 app.url_build_error_handlers 重讀 BuildError .

0.0.1版本?

發布日期:2013-06-14

  • 修正了一個問題 |tojson 未引用單引號,這導致篩選器無法在HTML屬性中正常工作?,F在可以在單引號屬性中使用該過濾器。這應該使使用過濾器角度.js更容易的。

  • 在會話系統中添加了對字節字符串的支持。這破壞了與人們將二進制數據用于令牌驗證的常見情況的兼容性。

  • 修復了為同一端點兩次注冊相同方法會錯誤觸發異常的問題。

版本0.10?

發布日期:2013-06-13,代號:Limoncello

  • 將默認的cookie序列化格式從pickle更改為JSON,以限制攻擊者在密鑰泄漏時的影響。

  • 補充 template_test 除了已經存在的 template_filter 方法族

  • 補充 template_global 除了已經存在的 template_filter 方法族

  • 設置x-sendfile的內容長度頭。

  • tojson 過濾器現在不轉義HTML5解析器中的腳本塊。

  • tojson 默認情況下,在模板中使用是安全的。由于不同的轉義行為,這是允許的。

  • 如果您嘗試在已經使用的端點上注冊新函數,flask現在將引發錯誤。

  • 在simplejson周圍添加了包裝器模塊,并添加了datetime對象的默認序列化。這樣就可以更容易地定制Flask或任何Flask擴展如何處理JSON。

  • 已刪除已棄用的內部 flask.session 模塊別名。使用 flask.sessions 而是獲取會話模塊。這不能與 flask.session 會話代理。

  • 現在可以在沒有請求上下文的情況下呈現模板。行為與 request , sessiong 對象將不可用,并且不會調用藍圖的上下文處理器。

  • 配置對象現在作為一個真正的全局對象對模板可用,而不是通過一個上下文處理器(默認情況下甚至在導入的模板中也可以使用該對象)。

  • 添加了一個選項來生成非ascii編碼的JSON,這將減少通過網絡傳輸的字節數。它在默認情況下被禁用,以避免與現有庫發生混淆 flask.json.dumps 默認返回字節。

  • flask.g 現在存儲在應用程序上下文而不是請求上下文中。

  • flask.g 現在獲得了 get() 在不存在的項上不出錯的方法。

  • flask.g 現在可以用于 in 運算符來查看定義的內容,它現在是可重設的,并將生成存儲的所有屬性。

  • flask.Flask.request_globals_class 重命名為 flask.Flask.app_ctx_globals_class 這是一個更好的名字從0.10起。

  • request , sessiong 現在還將作為代理添加到模板上下文中,從而使它們在導入的模板中可用。但人們必須非常小心地使用這些宏,因為在宏之外使用可能會導致緩存。

  • 如果傳遞代理異常,則Flask將不再調用錯誤的錯誤處理程序。

  • 在localhost中添加了一個解決Chrome cookie的方法,該方法不適用于域名。

  • 更改了從會話中選擇cookie值默認值的邏輯,以便更好地使用Google Chrome。

  • 補充 message_flashed 簡化閃光測試的信號。

  • 增加了對復制請求上下文的支持,以便更好地使用greenlet。

  • 已刪除自定義JSON子類HTTP異常。如果你依賴于他們,你可以重新介紹他們自己瑣碎。但是,強烈建議不要使用它們,因為接口有缺陷。

  • python需求發生了變化:現在需要python 2.6或2.7來準備python 3.3端口。

  • 更改了如何通知拆卸系統異?!,F在,如果在錯誤處理過程的中途有人處理異常,這種方法就更可靠了。

  • 調試模式下的請求上下文保留現在保留異常信息,這意味著拆卸處理程序能夠區分錯誤和成功案例。

  • 增加了 JSONIFY_PRETTYPRINT_REGULAR 配置變量。

  • Flask現在默認情況下訂購JSON鍵,以避免由于不同工作人員之間的散列種子不同而丟棄HTTP緩存。

  • 補充 appcontext_pushedappcontext_popped 信號。

  • builtin-run方法現在采用 SERVER_NAME 選擇要運行的默認端口時計入。

  • 補充 flask.request.get_json() 作為舊的替代品 flask.request.json 財產。

版本0.9?

發布日期:2012-07-01,代號:Campari

  • 這個 flask.Request.on_json_loading_failed() 現在默認返回JSON格式的響應。

  • 這個 flask.url_for() 函數現在可以生成生成鏈接的錨。

  • 這個 flask.url_for() 函數現在還可以顯式生成特定于給定HTTP方法的URL規則。

  • logger現在只返回未顯式設置的調試日志設置。

  • 在關閉請求時注銷WSGI環境和請求對象之間的循環依賴關系。這意味著環境 werkzeug.requestNone 在將響應返回到wsgi服務器之后,但具有這樣的優勢:除非用戶自己創建了循環依賴項,否則cpython不需要垃圾收集器來終止請求。

  • 會話現在存儲在回調之后,因此如果會話有效負載存儲在會話中,您仍然可以在請求后回調中修改它。

  • 這個 flask.Flask 類將避免導入所提供的導入名稱(必需的第一個參數),以使以編程方式構建Flask實例的工具受益。Flask類將回到在具有定制模塊掛鉤的系統上使用import,例如googleappengine,或者當導入名稱在python2.7之前的zip歸檔文件(通常是.egg)中時使用import。

  • 藍圖現在有一個裝飾器來添加自定義模板過濾器應用程序范圍, flask.Blueprint.app_template_filter() .

  • Flask和Blueprint類現在有了一個非decorator方法,可以在應用程序范圍內添加自定義模板過濾器, flask.Flask.add_template_filter()flask.Blueprint.add_app_template_filter() .

  • 這個 flask.get_flashed_messages() 函數現在允許通過 category_filter 參數。

  • 這個 flask.Flask.run() 方法現在接受 None 對于 hostport 參數,使用默認值 None . 這允許使用配置值調用run,例如。 app.run(app.config.get('MYHOST'), app.config.get('MYPORT')) ,無論是否提供配置文件,都具有正確的行為。

  • 這個 flask.render_template() 方法現在接受模板名的iterable或單個模板名。以前,它只接受一個模板名。在iterable上,將呈現找到的第一個模板。

  • 補充 flask.Flask.app_context() 它的工作方式與請求上下文非常相似,但只提供對當前應用程序的訪問。這還增加了對在沒有活動請求上下文的情況下生成URL的支持。

  • 視圖函數現在可以返回一個元組,其中第一個實例是 flask.Response . 這允許返回 jsonify(error="error msg"), 400 從視圖函數。

  • FlaskBlueprint 現在提供一個 get_send_file_max_age() 鉤子類以覆蓋使用時從flask提供靜態文件的行為 flask.Flask.send_static_file() (用于默認靜態文件處理程序)和 send_file() . 這個鉤子提供了一個文件名,例如允許按文件擴展名更改緩存控件。的默認最大年齡 send_file 靜態文件可以通過 SEND_FILE_MAX_AGE_DEFAULT 配置變量,在默認情況下使用 get_send_file_max_age 實施。

  • 修復了會話實現中的一個假設,該假設可能會中斷使用外部存儲的會話實現上的消息閃爍。

  • 更改了函數的元組返回值的行為。它們不再是響應對象的參數,它們現在有了明確的含義。

  • 補充 flask.Flask.request_globals_class 允許在創建 g 每個請求的實例。

  • 補充 required_methods 屬性來查看函數以在注冊時強制添加方法。

  • 補充 flask.after_this_request() .

  • 補充 flask.stream_with_context() 以及多次推送上下文而不產生意外行為的能力。

0.8.1 版本?

發布日期:2012-07-01

  • 修復了未記錄的問題 flask.session 模塊無法在Python2.5上正常工作。它不應該被使用,但確實給包管理器帶來了一些問題。

版本0.8?

發布日期:2011-09-29,代號:Rakija

  • 將會話支持重構為會話接口,這樣就可以在不重寫flask類的情況下更改會話的實現。

  • 空會話cookie現在被正確地自動刪除。

  • 視圖函數現在可以選擇不獲取自動選項實現。

  • 現在可以捕獲HTTP異常和錯誤的請求錯誤,以便它們在跟蹤中正常顯示。

  • 處于調試模式的flask現在正在檢測一些常見問題,并嘗試警告您這些問題。

  • 如果在處理第一個請求之后附加了一個視圖,那么處于調試模式的Flask現在將抱怨斷言錯誤。當用戶忘記提前導入視圖代碼時,這會提供早期反饋。

  • 添加了在第一個請求開始時僅觸發一次的注冊回調的功能。( Flask.before_first_request()

  • 格式錯誤的JSON數據現在將觸發一個錯誤的請求HTTP異常,而不是一個值錯誤,如果不處理,通常會導致500個內部服務器錯誤。這是一個向后不兼容的變化。

  • 應用程序現在不僅有一個根路徑來存放資源和模塊,而且還有一個實例路徑,它是放置運行時修改的文件(上傳等)的指定位置。此外,這在概念上只是依賴于實例和外部版本控制,所以它是放置配置文件等的最佳位置。

  • 增加了 APPLICATION_ROOT 配置變量。

  • 實施 session_transaction() 從測試環境輕松修改會話。

  • 內部重構測試客戶機。這個 APPLICATION_ROOT 配置變量以及 SERVER_NAME 現在被測試客戶機正確地用作默認值。

  • 補充 flask.views.View.decorators 支持可插拔(基于類)視圖的簡單裝飾。

  • 修復了測試客戶機(如果與“with”語句一起使用)未觸發拆卸處理程序執行的問題。

  • 對會話cookie參數添加了更精細的控制。

  • 對方法視圖的頭請求現在自動發送到 get 方法,如果未實現任何處理程序。

  • 實現了虛擬 flask.ext 從中導入擴展名的包。

  • 異常的上下文保存現在是Flask本身的一個組成部分,不再是測試客戶機的組成部分。這清理了一些內部邏輯,降低了單元測試中請求上下文失控的幾率。

  • 修復了Jinja2環境的 list_templates 方法在涉及藍圖或模塊時未返回正確的名稱。

0.7.2版?

發布日期:2011-07-06

  • 修復了URL處理器無法正確處理藍圖的問題。

0.7.1版本?

發布日期:2011-06-29

  • 添加了丟失的未來導入,破壞了2.5兼容性。

  • 修復了藍圖的無限重定向問題。

版本0.7?

發布日期:2011-06-28,代號:Grappa

  • 補充 make_default_options_response() 子類可以使用它來更改 OPTIONS 響應。

  • 未綁定的本地人現在培養一個合適的 RuntimeError 而不是 AttributeError .

  • 現在不推薦使用基于文件對象的mimetype猜測和etag支持 flask.send_file() 因為它不可靠。改為傳遞文件名或附加您自己的etags并手動提供正確的mimetype。

  • 模塊的靜態文件處理現在要求顯式提供靜態文件夾的名稱。之前的自動檢測不可靠,導致谷歌應用引擎出現問題。在1.0之前,舊的行為將繼續工作,但會發出依賴性警告。

  • 修正了Flask在jython上運行的問題。

  • 增加了一個 PROPAGATE_EXCEPTIONS 可用于翻轉先前鏈接到的異常傳播設置的配置變量 DEBUG 單獨的,現在與 DEBUGTESTING .

  • 燒瓶內部不再依賴于通過 add_url_rule 函數,現在還可以接受添加到URL映射的常規werkzeug規則。

  • 增加了一個 endpoint 方法調用Flask應用程序對象,該對象允許使用修飾符注冊對任意端點的回調。

  • 使用上次修改的靜態文件發送,而不是0.6中錯誤引入的日期。

  • 補充 create_jinja_loader 覆蓋加載程序創建過程。

  • 為實現靜默標志 config.from_pyfile .

  • 補充 teardown_request decorator,用于不管是否發生異常都應在請求結束時運行的函數。同樣的行為 after_request 已更改。它現在不再在引發異常時執行。

  • 實施 flask.has_request_context()

  • 已棄用 init_jinja_globals . 覆蓋 create_jinja_environment() 方法來實現相同的功能。

  • 補充 flask.safe_join()

  • 自動JSON請求數據解包現在查看charset mimetype參數。

  • 不要在上修改會話 flask.get_flashed_messages() 如果會話中沒有消息。

  • before_request 處理程序現在可以終止有錯誤的請求。

  • 無法定義用戶異常處理程序。這樣,您就可以從中心集線器為請求處理過程中可能發生的某些錯誤(例如數據庫連接錯誤、遠程資源超時等)提供自定義錯誤消息。

  • 藍圖可以提供藍圖特定的錯誤處理程序。

  • 實現了基于類的通用視圖。

0.6版本?

發布日期:2010-12-31

  • 修復了默認 OPTIONS 響應未公開中的所有有效方法 Allow 標題。

  • Jinja2模板加載語法現在允許在模板加載路徑前面使用“/”。以前,這會導致模塊設置出現問題。

  • 修復了靜態文件夾忽略模塊子域設置的問題。

  • 修復了一個安全問題,即如果主機服務器是基于Windows的操作系統,并且客戶端使用反斜杠來轉義從中公開文件的目錄,則允許客戶端下載任意文件。

版本0.6?

發布日期:2010-07-27,代號:威士忌

  • After request函數現在按與注冊相反的順序調用。

  • 選項現在由flask自動實現,除非應用程序顯式地將“options”作為方法添加到URL規則中。在這種情況下,沒有自動選項處理。

  • 如果模塊沒有靜態文件夾,靜態規則現在甚至已經就位。這是為了幫助GAE刪除靜態文件夾(如果它是.yml文件中映射的一部分)。

  • 這個 config 現在在模板中可用為 config .

  • 上下文處理器將不再覆蓋直接傳遞給呈現函數的值。

  • 添加了限制傳入請求數據的功能 MAX_CONTENT_LENGTH 配置值。

  • 的終結點 flask.Module.add_url_rule() 方法現在是可選的,以便與應用程序對象上同名的函數保持一致。

  • 增加了一個 flask.make_response() 簡化在視圖中創建響應對象實例的函數。

  • 增加了基于blinker的信令支持。此功能當前是可選的,應該由擴展和應用程序使用。如果你想用它,一定要有 blinker 安裝。

  • 重構了URL適配器的創建方式?,F在可以使用 create_url_adapter() 方法。

  • 模塊現在可以注冊子域,而不僅僅是URL前綴。這使得可以將整個模塊綁定到一個可配置的子域。

0.5.2版本?

發布日期:2010-07-15

  • 修正了使用模塊時從目錄加載模板的另一個問題。

0.5.1版本?

發布日期:2010-07-06

  • 修復了使用模塊時從目錄加載模板的問題。

版本0.5?

發布于2010-07-06,代號Calvados

  • 修復了由于無法指定服務器名稱而導致的子域錯誤?,F在可以使用 SERVER_NAME 配置鍵。此鍵現在還用于跨子域設置會話cookie。

  • 自動轉義不再對所有模板有效。相反,它只對 .html , .htm , .xml.xhtml . 在模板內,可以使用 autoescape 標簽。

  • 內部重構燒瓶。它現在由多個文件組成。

  • flask.send_file() 現在發出etags并能夠進行內置的條件響應。

  • (暫時)放棄了對壓縮應用程序的支持。這是一個很少使用的特性,導致了一些混亂的行為。

  • 增加了對每個包模板和靜態文件目錄的支持。

  • 拆下的支架 create_jinja_loader 由于改進了模塊支持,0.5中不再使用。

  • 添加了一個helper函數來公開任何目錄中的文件。

版本0.4?

發布日期:2010-06-18,代號:Rakia

  • 添加了從模塊注冊應用程序范圍的錯誤處理程序的功能。

  • after_request() 如果請求因異常而終止,并且出現錯誤處理頁面,那么現在也會調用處理程序。

  • 測試客戶機無法將請求上下文保留更長時間。這也可用于觸發不彈出請求堆棧進行測試的自定義請求。

  • 因為Python標準庫緩存了記錄器,記錄器的名稱現在可以配置為更好地支持unittests。

  • 補充 TESTING 可以激活單元測試助手的開關。

  • 記錄器切換到 DEBUG 如果啟用了調試,則立即進入模式。

0.3.1版?

發布日期:2010年5月28日

  • 修復了錯誤報告錯誤 flask.Config.from_envvar()

  • 從燒瓶中刪除一些未使用的代碼

  • 發行版不再包含開發遺留文件(.git文件夾用于主題,zip和pdf文件中的內置文檔以及一些.pyc文件)

版本0.3?

2010-05-28發布,代號SCNAPS

  • 增加了對閃現消息類別的支持。

  • 應用程序現在配置 logging.Handler 當不處于調試模式時,將記錄該記錄器的請求處理異常。例如,這使得接收有關服務器錯誤的郵件成為可能。

  • 添加了對上下文綁定的支持,該綁定不需要在控制臺中使用with語句。

  • 請求上下文現在可以在with語句中使用,從而可以進一步推送或彈出請求上下文。

  • 增加了對配置的支持。

版本0.2?

2010-05-12發布,代號J?德國作家

  • 各種錯誤修復

  • 集成JSON支持

  • 補充 get_template_attribute() 幫助程序函數。

  • add_url_rule() 現在還可以注冊視圖函數。

  • 重構的內部請求調度。

  • 服務器現在默認監聽127.0.0.1來修復chrome的問題。

  • 添加了外部URL支持。

  • 為添加了支持 send_file()

  • 模塊支持和內部請求處理重構,以更好地支持可插拔的應用程序。

  • 現在可以在每個會話的基礎上將會話設置為永久性的。

  • 更好地報告丟失密鑰的錯誤。

  • 增加了對googleappengine的支持。

版本0.1?

發布日期:2010-04-16

  • 首次公開預覽發布。