變更¶
版本 3.1.1¶
未發布
修正
cli_runner.invoke
的類型提示。#5645
版本 3.1.0¶
發布於 2024-11-13
移除對 Python 3.8 的支援。#5623
更新最低依賴版本至最新的功能發布版本。Werkzeug >= 3.1, ItsDangerous >= 2.2, Blinker >= 1.9。#5624,5633
提供組態選項以控制自動選項回應。#5496
Flask.open_resource
/open_instance_resource
和Blueprint.open_resource
接受encoding
參數,用於在文字模式下開啟時使用。預設值為utf-8
。#5504Request.max_content_length
可以針對每個請求進行自訂,而不僅限於透過MAX_CONTENT_LENGTH
組態。新增MAX_FORM_MEMORY_SIZE
和MAX_FORM_PARTS
組態。在安全性頁面新增關於資源限制的文件。#5625新增對
Partitioned
cookie 屬性 (CHIPS) 的支援,透過SESSION_COOKIE_PARTITIONED
組態。#5472-e path
優先於預設的.env
和.flaskenv
檔案。load_dotenv
除了路徑之外,還會載入預設檔案,除非傳遞load_defaults=False
。#5628支援使用
SECRET_KEY_FALLBACKS
組態進行金鑰輪換,這是一個舊密鑰列表,仍然可以用於取消簽署。擴充套件將需要新增支援。#5621修正設定
host_matching=True
或subdomain_matching=False
如何與SERVER_NAME
互動。設定SERVER_NAME
不再限制請求僅限於該網域。#5553Request.trusted_hosts
在路由期間檢查,並且可以透過TRUSTED_HOSTS
組態設定。#5636
版本 3.0.3¶
發布於 2024-04-07
版本 3.0.2¶
發布於 2024-02-03
版本 3.0.1¶
發布於 2024-01-18
版本 3.0.0¶
發布於 2023-09-30
版本 2.3.3¶
發布於 2023-08-21
Python 3.12 相容性。
需要 Werkzeug >= 2.3.7。
使用
flit_core
而不是setuptools
作為建置後端。重構應用程式根目錄和實例路徑的判斷方式。#5160
版本 2.3.2¶
發布於 2023-05-01
當 session 被存取、修改或重新整理時,設定
Vary: Cookie
標頭。更新 Werkzeug 需求至 >=2.3.3 以套用最近的錯誤修正。
版本 2.3.1¶
發布於 2023-04-25
恢復已棄用的
from flask import Markup
。#5084
版本 2.3.0¶
發布於 2023-04-25
移除對 Python 3.7 的支援。#5072
更新最低需求至最新版本:Werkzeug>=2.3.0, Jinja2>3.1.2, itsdangerous>=2.1.2, click>=8.1.3。
移除先前已棄用的程式碼。#4995
已移除已棄用的
_app_ctx_stack
和_request_ctx_stack
物件的push
和pop
方法。top
仍然存在,以便讓擴充套件有更多時間更新,但它將會被移除。已移除
FLASK_ENV
環境變數、ENV
組態鍵和app.env
屬性。已移除
app
上的session_cookie_name
、send_file_max_age_default
、use_x_sendfile
、propagate_exceptions
和templates_auto_reload
屬性。已移除
JSON_AS_ASCII
、JSON_SORT_KEYS
、JSONIFY_MIMETYPE
和JSONIFY_PRETTYPRINT_REGULAR
組態鍵。已移除
app.before_first_request
和bp.before_app_first_request
裝飾器。已移除 app 和 blueprint 上的
json_encoder
和json_decoder
屬性,以及對應的json.JSONEncoder
和JSONDecoder
類別。已移除
json.htmlsafe_dumps
和htmlsafe_dump
函式。在註冊藍圖後呼叫設定方法是一個錯誤,而不是警告。#4997
從
flask
匯入escape
和Markup
已棄用。改為直接從markupsafe
匯入它們。#4996已棄用
app.got_first_request
屬性。#4997已棄用
locked_cached_property
裝飾器。如果需要鎖定,請在裝飾函式內使用鎖定。#4993訊號始終可用。
blinker>=1.6.2
是必要的依賴項。已棄用signals_available
屬性。#5056訊號支援
async
訂閱者函式。#5049移除可能導致請求非常短暫地相互阻塞的鎖定使用。#4993
使用具有
pyproject.toml
的現代封裝中繼資料,而不是setup.cfg
。#4947確保子網域與巢狀藍圖一起應用。#4834
config.from_file
可以使用text=False
來指示解析器想要二進制檔案。#4989如果藍圖是以空名稱建立的,則會引發
ValueError
。#5010SESSION_COOKIE_DOMAIN
不會回退到SERVER_NAME
。預設值是不設定網域,現代瀏覽器將其解釋為精確匹配,而不是子網域匹配。關於localhost
和 IP 位址的警告也被移除。#5051當使用網域匹配時,
routes
命令會顯示每個規則的subdomain
或host
。#5004使用延遲評估註解。#5071
版本 2.2.5¶
發布於 2023-05-02
更新以相容於 Werkzeug 2.3.3。
當 session 被存取、修改或重新整理時,設定
Vary: Cookie
標頭。
版本 2.2.4¶
發布於 2023-04-25
更新以相容於 Werkzeug 2.3。
版本 2.2.3¶
發布於 2023-02-15
版本 2.2.2¶
發布於 2022-08-08
版本 2.2.1¶
發布於 2022-08-03
設定或存取
json_encoder
或json_decoder
會引發棄用警告。#4732
版本 2.2.0¶
發布於 2022-08-01
移除先前已棄用的程式碼。#4667
已移除一些
send_file
參數的舊名稱。download_name
取代attachment_filename
,max_age
取代cache_timeout
,而etag
取代add_etags
。此外,path
取代send_from_directory
中的filename
。已移除傳回
AppContext.g
的RequestContext.g
屬性。
更新 Werkzeug 依賴項至 >= 2.2。
應用程式和請求上下文是直接使用 Python 上下文變數而不是 Werkzeug 的
LocalStack
進行管理的。這應該可以帶來更好的效能和記憶體使用。#4682擴充套件維護者請注意,
_app_ctx_stack.top
和_request_ctx_stack.top
已棄用。改為使用唯一前綴將資料儲存在g
上,例如g._extension_name_attr
。
已棄用
FLASK_ENV
環境變數和app.env
屬性,移除開發模式和偵錯模式之間的區別。偵錯模式應直接使用--debug
選項或app.run(debug=True)
進行控制。#4714已棄用
app
上代理組態鍵的一些屬性:session_cookie_name
、send_file_max_age_default
、use_x_sendfile
、propagate_exceptions
和templates_auto_reload
。改為使用相關的組態鍵。#4716為
Flask
應用程式物件新增新的自訂點,用於許多先前全域行為。JSON 組態已移至預設
app.json
提供者上的屬性。JSON_AS_ASCII
、JSON_SORT_KEYS
、JSONIFY_MIMETYPE
和JSONIFY_PRETTYPRINT_REGULAR
已棄用。#4692在 app 或 blueprint 上設定自訂
json_encoder
和json_decoder
類別,以及對應的json.JSONEncoder
和JSONDecoder
類別,已棄用。現在可以使用app.json
提供者介面覆寫 JSON 行為。#4692已棄用
json.htmlsafe_dumps
和json.htmlsafe_dump
,該函式現在已內建於 Jinja 中。#4692重構
register_error_handler
以合併錯誤檢查。重寫一些錯誤訊息以使其更一致。#4559使用 Blueprint 裝飾器和函數,這些裝飾器和函數旨在在註冊藍圖後進行設定,將顯示警告。在下一個版本中,這將變成一個錯誤,就像應用程式設定方法一樣。#4571
已棄用
before_first_request
。改為在建立應用程式時執行設定程式碼。#4605新增
View.init_every_request
類別屬性。如果視圖子類別將其設定為False
,則視圖不會在每個請求上建立新的實例。#2520。flask.cli.FlaskGroup
Click 群組可以巢狀結構化為自訂 CLI 中的子命令。#3263新增
--app
和--debug
選項至flask
CLI,而不是要求透過環境變數設定它們。#2836新增
--env-file
選項至flask
CLI。這允許指定一個 dotenv 檔案,除了.env
和.flaskenv
之外還載入該檔案。#3108不再需要在
app.cli
或blueprint.cli
上使用@with_appcontext
裝飾自訂 CLI 命令,在該點應用程式上下文已處於活動狀態。#2410SessionInterface.get_expiration_time
使用時區感知的值。#4645視圖函式可以直接傳回產生器,而無需將它們包裝在
Response
中。#4629新增
stream_template
和stream_template_string
函式,以將範本呈現為片段流。#4629在偵錯和測試期間,上下文保留的新實作。#4666
當在互動式偵錯器控制台中執行程式碼時,
request
、g
和其他上下文區域變數指向正確的資料。#2836Teardown 函式總是在請求結束時執行,即使上下文被保留也是如此。它們也會在彈出保留的上下文後執行。
stream_with_context
將上下文與with client
區塊分開保留。當呼叫response.get_data()
或response.close()
時,它將被清除。
允許從視圖函式傳回列表,以將其轉換為 JSON 回應,就像字典一樣。#4672
在進行類型檢查時,允許從視圖函式傳回
TypedDict
。#4695從
flask run
命令中移除--eager-loading/--lazy-loading
選項。應用程式始終在第一次時急切載入,然後在重新載入器中延遲載入。重新載入器始終立即列印錯誤,但繼續提供服務。移除先前實作使用的內部DispatchingApp
中介軟體。#4715
版本 2.1.3¶
發布於 2022-07-13
版本 2.1.2¶
發布於 2022-04-28
版本 2.1.1¶
發布於 2022-03-30
將 importlib_metadata 的最低所需版本設定為 3.6.0,這是 Python < 3.10 上所必需的。#4502
版本 2.1.0¶
發布於 2022-03-28
移除對 Python 3.6 的支援。#4335
更新 Click 依賴項至 >= 8.0。#4008
移除先前已棄用的程式碼。#4337
CLI 不會將
script_info
傳遞給應用程式工廠函式。config.from_json
已被config.from_file(name, load=json.load)
取代。json
函式不再接受encoding
參數。已移除
safe_join
,改為使用werkzeug.utils.safe_join
。已移除
total_seconds
,改為使用timedelta.total_seconds
。同一個藍圖不能以相同的名稱註冊。註冊時使用
name=
來指定唯一名稱。測試客戶端的
as_tuple
參數已移除。改為使用response.request.environ
。#4417
在 2.0 中,
send_file
和send_from_directory
中的某些參數已重新命名。舊名稱的棄用期延長至 2.2。請務必在顯示棄用警告的情況下進行測試。attachment_filename
已重新命名為download_name
。cache_timeout
已重新命名為max_age
。add_etags
已重新命名為etag
。filename
已重新命名為path
。
已棄用
RequestContext.g
屬性。改為直接使用g
或AppContext.g
。#3898copy_current_request_context
可以裝飾 async 函式。#4303CLI 使用
importlib.metadata
而不是pkg_resources
來載入命令入口點。#4419覆寫
FlaskClient.open
不會在重新導向時導致錯誤。#3396新增
--exclude-patterns
選項至flask run
CLI 命令,以指定重新載入器將忽略的模式。#4188當使用延遲載入(偵錯器的預設值)時,來自
flask run
命令的 Click 上下文在載入器線程中仍然可用。#4460刪除 session cookie 會使用
httponly
標誌。#4485放寬
errorhandler
的類型,以允許使用者使用更精確的類型並多次裝飾相同的函式。#4095, 4295, 4297修正
__exit__
方法的類型,以獲得與ExitStack
更好的相容性。#4474從 Werkzeug 來看,對於重新導向回應,預設情況下
Location
標頭 URL 將保持相對,並排除 scheme 和網域。#4496新增
Config.from_prefixed_env()
以從以FLASK_
或另一個前綴開頭的環境變數載入組態值。預設情況下,這會將值解析為 JSON,並允許在巢狀字典中設定鍵。#4479
版本 2.0.3¶
發布日期 2022-02-14
測試用戶端的
as_tuple
參數已被棄用,並將在 Werkzeug 2.1 中移除。現在 Flask 中也已棄用,將在 Flask 2.1 中移除,但在 2.0.x 版本中仍保持相容性。請改用response.request.environ
取代。 #4341修正
errorhandler
裝飾器的類型註解。 #4295還原 CLI 的一項變更,該變更導致在導入應用程式時隱藏
ImportError
追溯。 #4307app.json_encoder
和json_decoder
僅在它們具有自訂行為時才傳遞給dumps
和loads
。這提高了效能,主要是在 PyPy 上。 #4349當
after_this_request
在請求上下文之外使用時,提供更清晰的錯誤訊息。 #4333
版本 2.0.2¶
發布日期 2021-10-04
修正
teardown_*
方法的類型註解。 #4093修正
before_request
和before_app_request
裝飾器的類型註解。 #4104修正了類型標註要求範本全域裝飾器接受不帶參數的函數的問題。 #4098
支援帶有非同步處理器的 View 和 MethodView 實例。 #4112
增強
app.errorhandler
裝飾器的類型標註。 #4095修正了使用不同名稱重複註冊藍圖的問題。 #4124
修正
static_folder
的類型以接受pathlib.Path
。 #4150jsonify
透過編碼為str
來處理decimal.Decimal
。 #4157正確處理 CLI 延遲載入中引發的延遲錯誤。 #4096
CLI 載入器處理
create_app
函數中的**kwargs
。 #4170修正
before_request
和其他在視圖返回之前觸發的回呼的順序。它們從應用程式向下調用到最接近的巢狀藍圖。 #4229
版本 2.0.1¶
發布日期 2021-05-21
在
send_from_directory
中重新新增filename
參數。filename
參數已重新命名為path
,舊名稱已棄用。 #4019將頂層名稱標記為已匯出,以便類型檢查理解使用者專案中的導入。 #4024
修正
g
的類型註解,並告知 mypy 它是一個具有任意屬性的命名空間物件。 #4020修正了一些在 Python 3.6.0 中不可用的類型。 #4040
改進
send_file
、send_from_directory
和get_send_file_max_age
的類型標註。 #4044, #4026當藍圖名稱包含點時顯示錯誤訊息。
.
具有特殊含義,它用於分隔(巢狀)藍圖名稱和端點名稱。 #4041合併在建立時具有
url_prefix
值的巢狀藍圖的 URL 前綴。 #4037還原對 URL 匹配順序的變更。URL 再次在會話載入後進行匹配,因此會話在自訂 URL 轉換器中可用。 #4053
重新新增已棄用的
Config.from_json
,它在早期被意外移除。 #4078改進使用
Callable
在其類型簽名中的某些函數的類型標註,重點是裝飾器工廠。 #4060巢狀藍圖以其點狀名稱註冊。這允許具有相同名稱的不同藍圖在不同位置進行巢狀處理。 #4069
register_blueprint
採用name
選項來變更藍圖註冊時的(前點狀)名稱。這允許同一個藍圖使用唯一的url_for
名稱多次註冊。使用相同名稱多次註冊同一個藍圖已被棄用。 #1091改進
stream_with_context
的類型標註。 #4052
版本 2.0.0¶
發布日期 2021-05-11
停止支援 Python 2 和 3.5。
提高其他 Pallets 專案的最低版本要求:Werkzeug >= 2、Jinja2 >= 3、MarkupSafe >= 2、ItsDangerous >= 2、Click >= 8。請務必查看每個專案的變更日誌。為了更好地與仍然需要 Click 7 的其他應用程式(例如 Celery)相容,目前還沒有對 Click 8 的硬性依賴,但是使用 Click 7 將觸發 DeprecationWarning,並且 Flask 2.1 將依賴 Click 8。
JSON 支援不再使用 simplejson。要使用另一個 JSON 模組,請覆寫
app.json_encoder
和json_decoder
。 #3555JSON 函數的
encoding
選項已被棄用。 #3562將
script_info
傳遞給應用程式工廠函數已被棄用。這在flask
命令之外是不可移植的。如果需要,請使用click.get_current_context().obj
。 #3552當應用程式在查找命令時載入失敗時,CLI 會顯示更好的錯誤訊息。 #2741
新增
SessionInterface.get_cookie_name
以允許動態設定會話 Cookie 名稱。 #3369新增
Config.from_file
以使用任意檔案載入器載入配置,例如toml.load
或json.load
。Config.from_json
已棄用,建議改用此方法。 #3398flask run
命令僅在重新載入時延遲錯誤。初始調用期間出現的錯誤將導致伺服器立即退出並顯示追溯。 #3431當以文字模式傳遞
io
物件時,send_file
會引發ValueError
。先前,它會回應 200 OK 和一個空檔案。 #3358當使用臨時憑證時,檢查 cryptography 程式庫而不是 PyOpenSSL。 #3492
當使用工廠函數指定
FLASK_APP
時,可以傳遞關鍵字參數。 #3553當載入
.env
或.flaskenv
檔案時,目前的工作目錄不再變更為檔案的位置。 #3560當從視圖返回
(response, headers)
元組時,標頭會替換而不是擴展回應上的現有標頭。例如,這允許為jsonify()
設定Content-Type
。如果需要擴展,請使用response.headers.extend()
。 #3628Scaffold
類別為Flask
和Blueprint
類別提供了一個通用的 API。Blueprint
資訊儲存在屬性中,就像Flask
一樣,而不是不透明的 lambda 函數。這旨在提高一致性和可維護性。 #3215移除會話 Cookie 時,包含
samesite
和secure
選項。 #3726支援將
pathlib.Path
傳遞給static_folder
。 #3579send_file
和send_from_directory
是werkzeug.utils
中實作的包裝器。 #3828某些
send_file
參數已重新命名,舊名稱已棄用。attachment_filename
已重新命名為download_name
。cache_timeout
已重新命名為max_age
。add_etags
已重新命名為etag
。 #3828, 3883即使
as_attachment=False
,send_file
也會透過使用Content-Disposition: inline
傳遞download_name
。 #3828send_file
預設設定conditional=True
和max_age=None
。如果未設定max_age
,則Cache-Control
設定為no-cache
,否則設定為public
。這告訴瀏覽器驗證條件請求,而不是使用定時快取。 #3828helpers.safe_join
已棄用。請改用werkzeug.utils.safe_join
。 #3828請求上下文在開啟會話之前執行路由匹配。這可能允許會話介面根據
request.endpoint
變更行為。 #3776使用 Jinja 實作的
|tojson
過濾器。 #3881為常見的 HTTP 方法新增路由裝飾器。例如,
@app.post("/login")
是@app.route("/login", methods=["POST"])
的快捷方式。 #3907支援非同步視圖、錯誤處理器、請求前和請求後函數,以及拆解函數。 #3412
支援巢狀藍圖。 #593, 1548, #3923
將載入
.env
和.flaskenv
檔案時的預設編碼設定為「UTF-8」,以允許使用非 ASCII 字元。 #3931如果安裝了
readline
,flask shell
會像預設的python
shell 一樣設定 Tab 鍵和歷史記錄完成功能。 #3941helpers.total_seconds()
已棄用。請改用timedelta.total_seconds()
。 #3962新增類型提示。 #3973。
版本 1.1.4¶
發布日期 2021-05-13
更新
static_folder
以使用_compat.fspath
而不是os.fspath
,以繼續支援 Python < 3.6 #4050
版本 1.1.3¶
發布日期 2021-05-13
版本 1.1.2¶
發布日期 2020-04-03
版本 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。
對於
InternalServerError
或500
的錯誤處理器,將始終傳遞InternalServerError
的實例。如果它們是由於未處理的異常而調用,則原始異常現在可以作為e.original_exception
使用,而不是直接傳遞給處理器。如果處理器適用於基本HTTPException
,情況也是如此。這使得錯誤處理器的行為更加一致。 #3266即使沒有
500
錯誤處理器,也會為所有未處理的異常調用Flask.finalize_request
。
Flask.logger
使用與Flask.name
相同的名稱(作為Flask(import_name)
傳遞的值)。這還原了 1.0 始終記錄到"flask.app"
的行為,以便支援同一進程中的多個應用程式。如果檢測到需要移動的舊配置,將顯示警告。 #2866RequestContext.copy
在請求上下文副本中包含當前會話物件。這可以防止session
指向過時的物件。 #2935使用內建 RequestContext,Host 標頭中不可列印的 Unicode 字元將導致 HTTP 400 回應,而不是之前的 HTTP 500。 #2994
send_file
支援 PEP 519 中描述的PathLike
物件,以支援 Python 3 中的pathlib
。 #3059send_file
支援BytesIO
部分內容。 #2957open_resource
接受 "rt" 檔案模式。這仍然與 "r" 做同樣的事情。 #3163子類別使用在基類中設定的
MethodView.methods
屬性。 #3138Flask.jinja_options
是一個dict
而不是ImmutableDict
,以便更容易配置。變更仍然必須在建立環境之前進行。 #3190請求和回應包裝器的 Flask
JSONMixin
已移至 Werkzeug。使用 Werkzeug 的版本,並具有 Flask 特定的支援。這將 Werkzeug 依賴項提高到 >= 0.15。 #3125flask
命令入口點已簡化,以利用 Werkzeug 0.15 更好的重新載入器支援。這將 Werkzeug 依賴項提高到 >= 0.15。 #3022支援以正斜線結尾的
static_url_path
。 #3134支援空的
static_folder
,而無需設定空的static_url_path
。 #3124jsonify
支援dataclass
物件。 #3195允許自訂用於路由的
Flask.url_map_class
。 #3069開發伺服器埠可以設定為 0,這會告知作業系統選擇一個可用的埠。 #2926
來自
cli.load_dotenv
的傳回值與文件更加一致。如果未安裝 python-dotenv,或者給定的路徑不是檔案,它將傳回False
。 #2937當未安裝 Blinker 程式庫時,信號支援具有
connect_via
方法的 Stub。 #3208為
flask run
CLI 命令新增--extra-files
選項,以指定在變更時將觸發重新載入器的額外檔案。 #2897允許從視圖函數傳回字典。類似於傳回字串將產生
text/html
回應的方式,傳回字典將調用jsonify
以產生application/json
回應。 #3111藍圖具有像
app.cli
一樣的cli
Click 群組。使用藍圖註冊的 CLI 命令將作為flask
命令下的群組提供。 #1357。當將測試用戶端用作上下文管理器 (
with client:
) 時,當區塊退出時,所有保留的請求上下文都會被彈出,確保正確清理巢狀上下文。 #3157當視圖傳回類型不受支援時,顯示更好的錯誤訊息。 #3214
flask.testing.make_test_environ_builder()
已被棄用,建議改用新的類別flask.testing.EnvironBuilder
。 #3232如果 Python 不是使用 SSL 支援建置的,則
flask run
命令不再失敗。使用--cert
選項將顯示適當的錯誤訊息。 #3211URL 匹配現在在推送請求上下文之後發生,而不是在建立請求上下文時發生。這允許自訂 URL 轉換器存取應用程式和請求上下文,例如查詢資料庫以獲取 ID。 #3088
版本 1.0.4¶
發布日期 2019-07-04
版本 1.0.3¶
發布日期 2019-05-17
send_file
將檔案名稱編碼為 ASCII 而不是 Latin-1 (ISO-8859-1)。這修復了與 Gunicorn 的相容性問題,Gunicorn 對於標頭編碼比 PEP 3333 更嚴格。 #2766允許使用
FlaskGroup
的自訂 CLI 設定偵錯標誌,而不會始終根據環境變數覆寫它。 #2765flask --version
輸出 Werkzeug 的版本並簡化 Python 版本。 #2825send_file
處理作為原生 Python 2 字串 (位元組) 的attachment_filename
,其中包含 UTF-8 編碼的位元組。 #2933為
HTTPException
註冊的捕獲所有錯誤處理器將不會處理RoutingException
,後者在路由期間在內部使用。這修復了 1.0 中引入的意外行為。 #2986將
json
參數傳遞給app.test_client
不會推送/彈出額外的應用程式上下文。 #2900
版本 1.0.2¶
發布日期 2018-05-02
版本 1.0.1¶
發布於 2018-04-29
修復將 partials(沒有
__name__
)註冊為視圖函式的問題。 #2730不要將從視圖函式返回的列表視為與元組相同。只有元組會被解釋為回應資料。 #2736
合併 blueprint 的
url_prefix
和路由 URL 之間的額外斜線。這修復了 1.0 版本變更的一些向後相容性問題。 #2731, #2742僅在除錯模式下捕獲
BadRequestKeyError
錯誤,而不是所有BadRequest
錯誤。這允許abort(400)
繼續如預期般運作。 #2735可以將
FLASK_SKIP_DOTENV
環境變數設定為1
,以跳過自動載入 dotenv 檔案。 #2722
版本 1.0¶
發布於 2018-04-26
不再支援 Python 2.6 和 3.3。
提升最低依賴版本至最新的穩定版本:Werkzeug >= 0.14、Jinja >= 2.10、itsdangerous >= 0.24、Click >= 5.1。 #2586
當從命令列執行 Flask 應用程式時,跳過
app.run
。這避免了一些令人困惑的除錯行為。將
JSONIFY_PRETTYPRINT_REGULAR
的預設值變更為False
。~json.jsonify
預設返回精簡格式,在除錯模式下返回縮排格式。 #2193Flask.__init__
接受host_matching
參數,並將其設定在Flask.url_map
上。 #1559Flask.__init__
接受static_host
參數,並在定義靜態路由時將其作為host
參數傳遞。 #1559send_file
支援attachment_filename
中的 Unicode。 #2223將
_scheme
參數從url_for
傳遞到Flask.handle_url_build_error
。 #2017Flask.add_url_rule
接受provide_automatic_options
參數,以停用新增OPTIONS
方法。 #1489MethodView
子類別繼承自基底類別的方法處理器。 #1936在請求開始時開啟 session 時發生的錯誤,由應用程式的錯誤處理器處理。 #2254
Blueprints 獲得了
Blueprint.json_encoder
和Blueprint.json_decoder
屬性,以覆寫應用程式的編碼器和解碼器。 #1898Flask.make_response
對於不良的回應類型,會引發TypeError
而不是ValueError
。錯誤訊息已改進,以描述類型為何無效。 #2256新增
routes
CLI 命令,以輸出在應用程式上註冊的路由。 #2259當 session cookie 網域是裸主機名稱或 IP 位址時顯示警告,因為這些在某些瀏覽器(例如 Chrome)中可能無法正常運作。 #2282
允許 IP 位址作為精確的 session cookie 網域。 #2282
如果透過
SERVER_NAME
偵測到,則會設定SESSION_COOKIE_DOMAIN
。 #2282從
FLASK_APP
自動偵測名為create_app
或make_app
的零參數應用程式工廠。 #2297工廠函式不需要使用
script_info
參數即可與flask
命令搭配使用。如果它們採用單一參數或名為script_info
的參數,則會傳遞ScriptInfo
物件。 #2319可以將
FLASK_APP
設定為應用程式工廠,如果需要可以帶參數,例如FLASK_APP=myproject.app:create_app('dev')
。 #2326FLASK_APP
可以指向未以可編輯模式安裝的本地套件,儘管仍然建議使用pip install -e
。 #2414在
View.as_view
中設定View
類別屬性View.provide_automatic_options
,以供Flask.add_url_rule
偵測。 #2316錯誤處理將嘗試為
blueprint, code
、app, code
、blueprint, exception
、app, exception
註冊的處理器。 #2314如果在請求期間存取了 session(且未刪除),則將
Cookie
新增至回應的Vary
標頭。 #2288Flask.test_request_context
接受subdomain
和url_scheme
參數,用於建構基礎 URL 時。 #1621預設將
APPLICATION_ROOT
設定為'/'
。當設定為None
時,這已經是隱含的預設值。在除錯模式下,預設啟用
TRAP_BAD_REQUEST_ERRORS
。BadRequestKeyError
在除錯模式下具有包含錯誤鍵的訊息,而不是通用的不良請求訊息。 #2348允許使用
TaggedJSONSerializer
註冊新標籤,以支援在 session cookie 中儲存其他類型。 #2352僅在請求尚未推送到上下文堆疊時才開啟 session。這允許
stream_with_context
生成器存取包含視圖所使用的相同 session。 #2354為測試用戶端請求方法新增
json
關鍵字參數。這會將給定的物件傾印為 JSON,並設定適當的內容類型。 #2358將 JSON 處理提取到應用於
Request
和Response
類別的 mixin。這將Response.is_json
和Response.get_json
方法新增至回應,使測試 JSON 回應更加容易。 #2358移除錯誤處理器快取,因為它為某些例外繼承層次結構造成了意外的結果。如果想要避免遍歷 MRO,請為每個例外顯式註冊處理器。 #2362
修復了對 aware, non-UTC datetime 進行不正確的 JSON 編碼。 #2374
即使已存取
Flask.jinja_env
,模板自動重新載入也會遵循除錯模式。 #2373以下舊的已棄用程式碼已被移除。 #2385
flask.ext
- 直接依名稱匯入擴充套件,而不是透過flask.ext
命名空間。例如,import flask.ext.sqlalchemy
變為import 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
屬性不再被棄用。 #1421支援將
EnvironBuilder
或dict
傳遞至test_client.open
。 #2412flask
命令和Flask.run
將從.env
和.flaskenv
檔案載入環境變數(如果已安裝 python-dotenv)。 #2416當將完整 URL 傳遞至測試用戶端時,將使用 URL 中的 scheme,而不是
PREFERRED_URL_SCHEME
。 #2430Flask.logger
已簡化。LOGGER_NAME
和LOGGER_HANDLER_POLICY
設定已移除。logger 始終命名為flask.app
。級別僅在首次存取時設定,它不會每次都檢查Flask.debug
。僅使用一種格式,而不是根據Flask.debug
使用不同的格式。不會移除任何處理器,並且僅在尚未配置任何處理器時才新增處理器。 #2436Blueprint 視圖函式名稱不得包含點。 #2450
修復了在某些情況下由無效
Range
請求引起的ValueError
。 #2526開發伺服器預設使用執行緒。 #2529
使用
silent=True
載入設定檔將忽略ENOTDIR
錯誤。 #2581將
--cert
和--key
選項傳遞至flask run
,以透過 HTTPS 執行開發伺服器。 #2606新增
SESSION_COOKIE_SAMESITE
以控制 session cookie 上的SameSite
屬性。 #2607新增
Flask.test_cli_runner
以建立 Click runner,該 runner 可以調用 Flask CLI 命令進行測試。 #2636子網域匹配預設為停用,並且設定
SERVER_NAME
不會隱式啟用它。可以透過將subdomain_matching=True
傳遞至Flask
建構子來啟用它。 #2635當 blueprint
url_prefix
在應用程式中註冊時,會從中剝離單個尾部斜線。 #2629當
silent
為 true 時,如果解析失敗,Request.get_json
不會快取結果。 #2651Request.get_json
不再接受任意編碼。根據 RFC 8259,傳入的 JSON 應使用 UTF-8 編碼,但 Flask 將自動偵測 UTF-8、-16 或 -32。 #2691新增
MAX_COOKIE_SIZE
和Response.max_cookie_size
,以控制 Werkzeug 何時警告瀏覽器可能會忽略的大型 cookies。 #2693更新了文件主題,使文件在小視窗中看起來更好。 #2709
重寫了教學文件和範例專案,採用更結構化的方法,以幫助新用戶避免常見的陷阱。 #2676
版本 0.12.5¶
發布於 2020-02-10
將 Werkzeug 鎖定為 < 1.0.0。 #3497
版本 0.12.4¶
發布於 2018-04-29
重新封裝 0.12.3 以修復套件佈局問題。 #2728
版本 0.12.3¶
發布於 2018-04-26
版本 0.12.2¶
發布於 2017-05-16
修復了 Windows 上
safe_join
中的錯誤。
版本 0.12.1¶
發布於 2017-03-31
版本 0.12¶
發布於 2016-12-21,代號 Punsch
cli 命令現在回應
--version
。已移除
send_file
中類檔案物件的 Mimetype 猜測和 ETag 生成。 #104, :pr`1849`send_file
中的 Mimetype 猜測現在會明確失敗,並且不會回退到application/octet-stream
。 #1988使
flask.safe_join
能夠像os.path.join
一樣連接多個路徑 #1730還原行為變更,該變更使開發伺服器崩潰而不是返回內部伺服器錯誤。 #2006
正確調用常規請求分派以及錯誤處理器的回應處理器。
預設停用應用程式 logger 的 logger 傳播。
在
send_file
中新增對 range 請求的支援。app.test_client
包含預設預設環境,現在可以直接設定,而不是每個client.get
設定。修復了在 PyPy3 下執行時崩潰的問題。 #1814
版本 0.11.1¶
發布於 2016-06-07
修復了阻止
FLASK_APP=foobar/__init__.py
運作的錯誤。 #1872
版本 0.11¶
發布於 2016-05-29,代號 Absinthe
新增了對將頂層陣列序列化為
jsonify
的支援。這在古老的瀏覽器中引入了安全風險。新增 before_render_template 信號。
在
Flask.test_client
中新增**kwargs
,以支援將額外的關鍵字參數傳遞至Flask.test_client_class
的建構子。新增
SESSION_REFRESH_EACH_REQUEST
設定鍵,用於控制 set-cookie 行為。如果設定為True
,則永久 session 將在每次請求時刷新並延長其生命週期;如果設定為False
,則僅在 session 實際修改時才會修改。非永久 session 不受此影響,並且始終會在瀏覽器視窗關閉時過期。使 Flask 支援用於傳入資料的自訂 JSON mimetypes。
新增了對從視圖函式返回
(response, headers)
形式的元組的支援。新增
Config.from_json
。新增
Flask.config_class
。新增
Config.get_namespace
。模板不再在除錯模式外自動重新載入。可以使用新的
TEMPLATES_AUTO_RELOAD
設定鍵來配置此行為。為 Python 3.3 的命名空間載入器中的限制新增了變通方法。
在使用 Python 3.3 的命名空間套件時,新增了對顯式根路徑的支援。
新增
flask
和flask.cli
模組,以透過 click CLI 系統啟動本地除錯伺服器。建議使用此方法來代替舊的flask.run()
方法,因為它由於不同的設計而工作更快且更可靠,並且還取代了Flask-Script
。現在首先檢查與特定類別匹配的錯誤處理器,從而允許捕獲 HTTP 例外(在
werkzeug.exceptions
中)的子類別。這使擴充套件作者可以建立預設會導致他們選擇的 HTTP 錯誤的例外,但如果需要,可以使用自訂錯誤處理器捕獲。新增
Config.from_mapping
。即使停用了除錯模式,Flask 現在也會預設記錄日誌。日誌格式現在是硬編碼的,但可以透過
LOGGER_HANDLER_POLICY
設定鍵停用預設日誌處理。移除了已棄用的模組功能。
新增了
EXPLAIN_TEMPLATE_LOADING
設定標誌,啟用後,它將指示 Flask 解釋它如何定位模板。這應有助於用戶在載入錯誤的模板時進行除錯。強制執行 blueprint 處理,按照它們註冊的順序載入模板。
將測試套件移植到 py.test。
棄用
request.json
,改用request.get_json()
。在 jsonify() 方法中新增 “pretty” 和 “compressed” 分隔符號定義。當
JSONIFY_PRETTYPRINT_REGULAR=False
時,通過移除預設在分隔符號後包含的不必要的空格來減小 JSON 回應大小。JSON 回應現在以換行字元終止,因為這是 UNIX 文字檔案以換行符結尾的慣例,並且某些用戶端在缺少此換行符時無法很好地處理。 #1262
如果用戶註冊了使用小寫版本
options
的覆寫規則,則現在可以正確停用自動提供的OPTIONS
方法。 #1288flask.json.jsonify
現在支援datetime.date
類型。 #1326不要將已捕獲例外的例外資訊洩漏到上下文拆解處理器。 #1393
允許自訂 Jinja 環境子類別。 #1422
更新了擴充套件開發指南。
flask.g
現在具有pop()
和setdefault
方法。預設為
flask.templating.render_template_string
開啟 autoescape。 #1515flask.ext
現在已棄用。 #1484如果伺服器 OS 上的檔案名稱無效,則
send_from_directory
現在會引發 BadRequest。 #1763新增了
JSONIFY_MIMETYPE
設定變數。 #1728拆解處理期間的例外將不再留下不良的應用程式上下文持續存在。
修復了損壞的
test_appcontext_signals()
測試案例。在
helpers.find_package
中引發AttributeError
,並提供有用的訊息,說明當 PEP 302 匯入 hook 在沒有is_package()
方法的情況下使用時,為何會引發該錯誤。修復了導致在進入請求或應用程式上下文之前引發的例外被傳遞到拆解處理器的問題。
修復了當請求絕對 URL 時,查詢參數從測試用戶端中的請求中移除的問題。
將
@before_first_request
變成預期的裝飾器。修復了在傳送帶有名稱的檔案流時的 etags 錯誤。
修復了
send_from_directory
未正確擴展到應用程式根路徑的問題。更改了首次請求處理器之前的邏輯,以在調用後翻轉標誌。這將允許一些可能危險但可能應該允許的用途。
修復了當
app.url_build_error_handlers
中的處理器重新引發BuildError
時的 Python 3 錯誤。
版本 0.10.1¶
發布於 2013-06-14
修正了
|tojson
過濾器在 HTML 屬性中,不會將單引號加上引號的問題,這會導致過濾器無法正常運作。現在可以在單引號屬性中使用該過濾器了。這應該能讓搭配 angular.js 使用該過濾器更加容易。新增了對位元組字串回溯支援到 session 系統。這破壞了與常見情況的相容性,即人們將二進制資料放入 session 中進行權杖驗證。
修正了針對相同端點重複註冊相同方法兩次,會錯誤地觸發例外狀況的問題。
版本 0.10¶
發布於 2013-06-13,代號 Limoncello
將預設 Cookie 序列化格式從 pickle 變更為 JSON,以限制密鑰洩漏時攻擊者可能造成的影響。
除了已存在的
template_filter
方法系列之外,還新增了template_test
方法。除了已存在的
template_filter
方法系列之外,還新增了template_global
方法。為 x-sendfile 設定 content-length 標頭。
tojson
過濾器現在不會跳脫 HTML5 解析器中的 script 區塊。在模板中使用的
tojson
現在預設是安全的。這是因為不同的跳脫行為而被允許。如果您嘗試在已使用的端點上註冊新函式,Flask 現在會引發錯誤。
在 simplejson 周圍新增了包裝模組,並新增了 datetime 物件的預設序列化。這允許更輕鬆地自訂 Flask 或任何 Flask 擴充功能處理 JSON 的方式。
移除已棄用的內部
flask.session
模組別名。請改用flask.sessions
以取得 session 模組。這不應與 session 代理flask.session
混淆。現在可以在沒有請求上下文的情況下呈現模板。行為略有不同,因為
request
、session
和g
物件將不可用,並且不會呼叫藍圖的上下文處理器。config 物件現在作為真正的全域變數提供給模板,而不是通過上下文處理器,這使其即使在預設情況下導入的模板中也可用。
新增了一個選項來產生非 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
、session
和g
現在也作為代理新增到模板上下文中,這使得它們在導入的模板中可用。但是,必須非常小心這些物件,因為在巨集之外使用可能會導致快取。如果傳遞代理例外狀況,Flask 將不再調用錯誤的錯誤處理程式。
為 chrome 在 localhost 中使用網域名稱時 Cookie 無法按預期運作的問題新增了變通方法。
變更了從 session 中選取 Cookie 值的預設邏輯,以便更好地與 Google Chrome 搭配使用。
新增了
message_flashed
信號,簡化了閃爍訊息的測試。新增了複製請求上下文的支援,以便更好地與 greenlets 搭配使用。
移除自訂 JSON HTTP 例外狀況子類別。如果您依賴它們,您可以輕鬆地再次重新引入它們。但是,強烈建議不要使用它們,因為介面存在缺陷。
Python 需求已變更:現在需要 Python 2.6 或 2.7,以便為 Python 3.3 移植做準備。
變更了如何將例外狀況通知 teardown 系統的方式。如果在錯誤處理過程中途處理了例外狀況,現在這樣做會更可靠。
偵錯模式下的請求上下文保留現在會保留例外狀況資訊,這表示 teardown 處理程式能夠區分錯誤和成功案例。
新增了
JSONIFY_PRETTYPRINT_REGULAR
組態變數。Flask 現在預設會排序 JSON 鍵,以避免因不同工作程序之間的不同雜湊種子而破壞 HTTP 快取。
新增了
appcontext_pushed
和appcontext_popped
信號。內建的 run 方法現在在選取要運作的預設連接埠時,會將
SERVER_NAME
納入考量。新增了
flask.request.get_json()
,以取代舊的flask.request.json
屬性。
版本 0.9¶
發布於 2012-07-01,代號 Campari
Request.on_json_loading_failed
現在預設傳回 JSON 格式的回應。url_for
函式現在可以為產生的連結產生錨點。url_for
函式現在也可以明確地產生特定於給定 HTTP 方法的 URL 規則。記錄器現在僅在未明確設定時才傳回偵錯記錄設定。
在關閉請求時,取消註冊 WSGI 環境與請求物件之間的循環相依性。這表示在將回應傳回 WSGI 伺服器後,環境變數
werkzeug.request
將為None
,但其優點是 CPython 上不需要垃圾收集器來關閉請求,除非使用者自己建立了循環相依性。Session 現在在回呼之後儲存,以便如果 session 酬載儲存在 session 中,您仍然可以在請求後回呼中修改它。
Flask
類別將避免匯入提供的匯入名稱(所需的第一個參數),以使程式化建置 Flask 實例的工具受益。Flask
類別將在具有自訂模組掛鉤的系統(例如 Google App Engine)上,或當匯入名稱位於 Python 2.7 之前的 zip 檔案(通常是 egg)內時,退回到使用匯入。藍圖現在有一個裝飾器,可以全應用程式範圍新增自訂模板過濾器
Blueprint.app_template_filter
。Flask 和藍圖類別現在有一個非裝飾器方法,可以全應用程式範圍新增自訂模板過濾器
Flask.add_template_filter
和Blueprint.add_app_template_filter
。get_flashed_messages
函式現在允許通過category_filter
參數,在單獨的區塊中呈現閃爍訊息類別。Flask.run
方法現在接受host
和port
參數的None
,在None
時使用預設值。這允許使用組態值呼叫 run,例如app.run(app.config.get('MYHOST'), app.config.get('MYPORT'))
,無論是否提供組態檔案,都具有正確的行為。render_template
方法現在接受模板名稱的可迭代物件或單個模板名稱。先前,它僅接受單個模板名稱。在可迭代物件上,將呈現找到的第一個模板。新增了
Flask.app_context
,其運作方式與請求上下文非常相似,但僅提供對當前應用程式的存取權。這也增加了在沒有活動請求上下文的情況下產生 URL 的支援。視圖函式現在可以傳回一個元組,其中第一個實例是
Response
的實例。這允許從視圖函式傳回jsonify(error="error msg"), 400
。Flask
和Blueprint
現在提供get_send_file_max_age
掛鉤,供子類別覆寫在使用Flask.send_static_file
(用於預設靜態檔案處理程式)和helpers.send_file
時,從 Flask 服務靜態檔案的行為。此掛鉤提供了一個檔案名稱,例如允許通過檔案擴展名更改快取控制。可以使用新的SEND_FILE_MAX_AGE_DEFAULT
組態變數配置send_file
和靜態檔案的預設最大期限,該變數在預設get_send_file_max_age
實作中使用。修正了 session 實作中的一個假設,該假設可能會破壞在使用外部儲存的 session 實作中的訊息閃爍。
變更了函式中元組傳回值的行為。它們不再是回應物件的參數,它們現在具有明確的含義。
新增了
Flask.request_globals_class
,允許在建立每個請求的g
實例時使用特定的類別。為視圖函式新增了
required_methods
屬性,以強制在註冊時新增方法。新增了
flask.after_this_request
。新增了
flask.stream_with_context
以及多次推送上下文而不會產生意外行為的功能。
版本 0.8.1¶
發布於 2012-07-01
修正了未記錄的
flask.session
模組在 Python 2.5 上無法正常運作的問題。它不應使用,但確實為套件管理器造成了一些問題。
版本 0.8¶
發布於 2011-09-29,代號 Rakija
將 session 支援重構為 session 介面,以便可以變更 session 的實作,而無需覆寫 Flask 類別。
現在可以自動正確刪除空的 session Cookie。
視圖函式現在可以選擇不取得自動 OPTIONS 實作。
現在可以捕獲 HTTP 例外狀況和錯誤請求錯誤,以便它們正常顯示在追蹤回溯中。
偵錯模式下的 Flask 現在可以偵測到一些常見問題,並嘗試警告您。
如果在處理第一個請求後附加了視圖,偵錯模式下的 Flask 現在將使用斷言錯誤來抱怨。當使用者忘記提前匯入視圖程式碼時,這會提供更早的回饋。
新增了註冊回呼的功能,這些回呼僅在第一個請求開始時觸發一次,使用
Flask.before_first_request
。格式錯誤的 JSON 資料現在將觸發錯誤請求 HTTP 例外狀況,而不是通常會導致 500 內部伺服器錯誤(如果未處理)的值錯誤。這是一個向後不相容的變更。
應用程式現在不僅具有資源和模組所在的根路徑,而且還具有實例路徑,這是放置在執行階段修改的檔案(上傳等)的指定位置。此外,這在概念上僅取決於實例並且在版本控制之外,因此它是放置組態檔案等的理想位置。
新增了
APPLICATION_ROOT
組態變數。實作了
TestClient.session_transaction
,以便從測試環境輕鬆修改 session。在內部重構了測試客戶端。
APPLICATION_ROOT
組態變數以及SERVER_NAME
現在已由測試客戶端正確用作預設值。新增了
View.decorators
,以支援更簡化的可插拔(基於類別的)視圖裝飾。修正了與 “with” 語句一起使用時,測試客戶端未觸發 teardown 處理程式執行的問題。
新增了對 session Cookie 參數的更精細控制。
如果未實作處理程式,則對方法視圖的 HEAD 請求現在會自動分派到
get
方法。實作了虛擬
flask.ext
套件以從中匯入擴充功能。例外狀況的上下文保留現在是 Flask 本身的一個組成部分,而不再是測試客戶端的一部分。這清理了一些內部邏輯,並降低了單元測試中失控請求上下文的機率。
修正了涉及藍圖或模組時,Jinja2 環境的
list_templates
方法未傳回正確名稱的問題。
版本 0.7.2¶
發布於 2011-07-06
修正了 URL 處理器在藍圖上無法正常運作的問題。
版本 0.7.1¶
發布於 2011-06-29
新增了遺失的 future 匯入,該匯入破壞了 2.5 相容性。
修正了藍圖的無限重新導向問題。
版本 0.7¶
發布於 2011-06-28,代號 Grappa
新增了
Flask.make_default_options_response
,子類別可以使用它來變更OPTIONS
回應的預設行為。未綁定的局部變數現在會引發正確的
RuntimeError
,而不是AttributeError
。基於檔案物件的 mimetype 猜測和 etag 支援現在已棄用
send_file
,因為它不可靠。請改為傳遞檔案名稱,或附加您自己的 etag 並手動提供正確的 mimetype。模組的靜態檔案處理現在需要明確提供靜態資料夾的名稱。先前的自動偵測不可靠,並在 Google 的 App Engine 上造成問題。在 1.0 之前,舊的行為將繼續運作,但會發出依賴性警告。
修正了 Flask 在 jython 上運作的問題。
新增了
PROPAGATE_EXCEPTIONS
組態變數,可用於翻轉例外狀況傳播的設定,該設定先前僅連結到DEBUG
,現在連結到DEBUG
或TESTING
。Flask 不再內部依賴於通過
add_url_rule
函式新增的規則,現在也可以接受新增到 URL 對應的常規 werkzeug 規則。為 flask 應用程式物件新增了
endpoint
方法,該方法允許使用裝飾器將回呼註冊到任意端點。對靜態檔案傳送使用 Last-Modified,而不是 0.6 中錯誤引入的 Date。
新增了
create_jinja_loader
以覆寫載入器建立過程。為
config.from_pyfile
實作了靜默標誌。新增了
teardown_request
裝飾器,用於應在請求結束時執行的函式,無論是否發生例外狀況。after_request
的行為也已變更。現在,當引發例外狀況時,不再執行它。實作了
has_request_context
。棄用了
init_jinja_globals
。請改為覆寫Flask.create_jinja_environment
方法以實現相同的功能。新增了
safe_join
。自動 JSON 請求資料解壓縮現在會查看 charset mimetype 參數。
如果 session 中沒有訊息,則不要在
get_flashed_messages
上修改 session。before_request
處理程式現在能夠使用錯誤中止請求。無法定義使用者例外狀況處理程式。這樣,您可以為請求處理期間可能發生的某些錯誤(例如資料庫連線錯誤、來自遠端資源的逾時等)從中央樞紐提供自訂錯誤訊息。
藍圖可以提供藍圖特定的錯誤處理程式。
實作了通用基於類別的視圖。
版本 0.6.1¶
發布於 2010-12-31
修正了預設
OPTIONS
回應未在Allow
標頭中公開所有有效方法的問題。Jinja2 模板載入語法現在允許在模板載入路徑前面加上 “./”。先前,這導致了模組設定的問題。
修正了模組的子網域設定被靜態資料夾忽略的問題。
修正了一個安全問題,如果主機伺服器是基於 Windows 的作業系統,並且客戶端使用反斜線來跳脫檔案公開的目錄,則該問題允許客戶端下載任意檔案。
版本 0.6¶
發布於 2010-07-27,代號 Whisky
請求後函式現在以註冊的相反順序呼叫。
除非應用程式明確將 ‘OPTIONS’ 作為方法新增到 URL 規則,否則 Flask 現在會自動實作 OPTIONS。在這種情況下,不會啟動自動 OPTIONS 處理。
即使模組沒有靜態資料夾,靜態規則現在也已到位。實作此功能是為了協助 GAE,如果靜態資料夾是 .yml 檔案中對應的一部分,則 GAE 將會移除該靜態資料夾。
Flask.config
現在在模板中以config
的形式提供。上下文處理器將不再覆寫直接傳遞給呈現函式的值。
新增了使用新的
MAX_CONTENT_LENGTH
組態值限制傳入請求資料的功能。Module.add_url_rule
方法的端點現在是可選的,以便與應用程式物件上同名函式保持一致。新增了
make_response
函式,簡化了在視圖中建立回應物件實例。新增了基於 blinker 的信號支援。此功能目前是可選的,應供擴充功能和應用程式使用。如果您想使用它,請確保已安裝
blinker
。重構了 URL 適配器的建立方式。此過程現在可以使用
Flask.create_url_adapter
方法完全自訂。模組現在可以註冊子網域,而不僅僅是 URL 首碼。這使得將整個模組綁定到可組態的子網域成為可能。
版本 0.5.2¶
發布於 2010-07-15
修正了使用模組時從目錄載入模板的另一個問題。
版本 0.5.1¶
發布於 2010-07-06
修正了使用模組時從目錄載入模板的問題。
版本 0.5¶
發布於 2010-07-06,代號 Calvados
修正了由無法指定伺服器名稱引起的子網域錯誤。現在可以使用
SERVER_NAME
組態鍵設定伺服器名稱。此鍵現在也用於設定跨子網域的 session Cookie。自動跳脫不再對所有模板都有效。相反,它僅對
.html
、.htm
、.xml
和.xhtml
有效。在模板內部,可以使用autoescape
標籤變更此行為。在內部重構了 Flask。它現在由多個檔案組成,而不只是一個檔案。
send_file
現在發出 etag,並且具有內建條件回應的功能。(暫時)取消了對壓縮應用程式的支援。這是一個很少使用的功能,並導致了一些令人困惑的行為。
新增了對每個套件模板和靜態檔案目錄的支援。
移除了對
create_jinja_loader
的支援,由於改進的模組支援,0.5 中不再使用該功能。新增了一個輔助函式,用於公開任何目錄中的檔案。
版本 0.4¶
發布於 2010-06-18,代號 Rakia
新增了從模組註冊應用程式範圍錯誤處理程式的功能。
如果請求因例外狀況而終止並且啟動錯誤處理頁面,則也會調用
Flask.after_request
處理程式。測試客戶端不具有將請求上下文保留更長時間的功能。這也可以用於觸發自訂請求,這些請求不會彈出請求堆疊以進行測試。
由於 Python 標準程式庫快取記錄器,因此現在可以組態記錄器的名稱,以便更好地支援單元測試。
新增了
TESTING
開關,可以啟動單元測試輔助程式。如果啟用了偵錯,記錄器現在會切換到
DEBUG
模式。
版本 0.3.1¶
發布於 2010-05-28
修正了
Config.from_envvar
的錯誤報告錯誤。移除了一些未使用的程式碼。
版本不再包含開發剩餘檔案(用於主題的 .git 資料夾、zip 和 pdf 檔案中內建的文件以及一些 .pyc 檔案)
版本 0.3¶
發布於 2010-05-28,代號 Schnaps
新增了對閃爍訊息類別的支援。
應用程式現在組態了
logging.Handler
,並且在非偵錯模式下,會將請求處理例外狀況記錄到該記錄器。這使得可以接收有關伺服器錯誤的郵件,例如。新增了對上下文綁定的支援,該綁定不需要使用 with 語句即可在控制台中播放。
請求上下文現在在 with 語句中可用,使其可以進一步推送請求上下文或彈出它。
新增了對組態的支援。
版本 0.2¶
發布於 2010-05-12,代號 J?germeister
各種錯誤修正
整合了 JSON 支援
新增了
get_template_attribute
輔助函式。Flask.add_url_rule
現在也可以註冊視圖函式。重構了內部請求分派。
伺服器現在預設在 127.0.0.1 上監聽,以修正 chrome 的問題。
新增了外部 URL 支援。
新增了對
send_file
的支援。模組支援和內部請求處理重構,以更好地支援可插拔應用程式。
現在可以基於每個 session 將 session 設定為永久性。
更好地報告遺失的密鑰的錯誤。
新增了對 Google Appengine 的支援。
版本 0.1¶
發布於 2010-04-16
首次公開預覽版本。