变化

版本3.0.0

已发布2023/09/30

  • 删除以前弃用的代码。 #5223

  • 不推荐使用 __version__ 属性。使用特征检测,或 importlib.metadata.version("flask") ,而不是。 #5230

  • 重新构造代码,使Flask类(APP)和Blueprint类具有SANS-IO基础。 #5127

  • 允许self作为url_for的参数。 #5264

  • 要求Werkzeug>=3.0.0。

版本2.3.3

已发布2023/08/21

  • 与Python3.12兼容。

  • 要求Werkzeug>=2.3.7。

  • 使用 flit_core 而不是 setuptools 作为构建后端。

  • 重构应用程序的根路径和实例路径的确定方式。 #5160

版本2.3.2

已发布2023-05-01

  • Vary: Cookie 访问、修改或刷新会话时的标头。

  • 将Werkzeug要求更新为>=2.3.3以应用最新的错误修复。

版本2.3.1

已发布2023-04-25

  • 还原已弃用 from flask import Markup#5084

版本2.3.0

已发布2023-04-25

  • 放弃对Python3.7的支持。 #5072

  • 将最低要求更新到最新版本:Werkzeug>=2.3.0,JJIA2>3.1.2,ITS DARGAND>=2.1.2,点击>=8.1.3。

  • 删除以前弃用的代码。 #4995

    • 这个 pushpop 不推荐使用的方法 _app_ctx_stack_request_ctx_stack 对象将被删除。 top 仍然存在,以给扩展更多的时间进行更新,但它将被删除。

    • 这个 FLASK_ENV 环境变量, ENV 配置密钥,以及 app.env 属性被删除。

    • 这个 session_cookie_namesend_file_max_age_defaultuse_x_sendfilepropagate_exceptions ,以及 templates_auto_reload 上的属性 app 都被移除了。

    • 这个 JSON_AS_ASCIIJSON_SORT_KEYSJSONIFY_MIMETYPE ,以及 JSONIFY_PRETTYPRINT_REGULAR 配置密钥将被删除。

    • 这个 app.before_first_requestbp.before_app_first_request 装修工被移除了。

    • json_encoderjson_decoder APP和蓝图上的属性,以及相应的 json.JSONEncoderJSONDecoder 类,则会被删除。

    • 这个 json.htmlsafe_dumpshtmlsafe_dump 函数将被删除。

    • 在注册后调用蓝图上的设置方法是错误而不是警告。 #4997

  • 正在导入 escapeMarkup 从… flask 已弃用。直接从以下位置导入 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 can use text=False to indicate that the parser wants a binary file instead. #4989

  • 如果使用空名称创建蓝图,则会引发 ValueError#5010

  • SESSION_COOKIE_DOMAIN does not fall back to SERVER_NAME. The default is not to set the domain, which modern browsers interpret as an exact match rather than a subdomain match. Warnings about localhost and IP addresses are also removed. #5051

  • 这个 routes 命令显示每个规则的 subdomainhost 使用域匹配时。 #5004

  • 使用延迟的批注求值。 #5071

版本2.2.5

已发布2023-05-02

  • 更新与Werkzeug 2.3.3的兼容性。

  • Vary: Cookie 访问、修改或刷新会话时的标头。

版本2.2.4

已发布2023-04-25

  • 更新以兼容Werkzeug 2.3。

版本2.2.3

已发布2023-02-15

  • 默认情况下,将启用自动转义 .svg 模板文件。 #4831

  • 修复的类型 template_folder 接受 pathlib.Path#4892

  • 增列 --debug 选项添加到 flask run 指挥部。 #4777

版本2.2.2

已发布2022-08-08

  • 将Werkzeug依赖项更新为>=2.2.2。这包括与新的更快的路由器、报头解析和开发服务器相关的修复。 #4754

  • 修复的缺省值 app.env 成为 "production" 。此属性仍处于弃用状态。 #4740

版本2.2.1

已发布2022-08-03

  • 设置或访问 json_encoderjson_decoder 引发弃用警告。 #4732

版本2.2.0

已发布2022-08-01

  • 删除以前弃用的代码。 #4667

    • 一些人的旧名字 send_file 参数已删除。 download_name 取代 attachment_filenamemax_age 取代 cache_timeout ,以及 etag 取代 add_etags 。另外, path 取代 filename 在……里面 send_from_directory

    • 这个 RequestContext.g 属性返回 AppContext.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_namesend_file_max_age_defaultuse_x_sendfilepropagate_exceptions ,以及 templates_auto_reload 。请改用相关的配置键。 #4716

  • 将新的定制点添加到 Flask 对象,用于许多以前的全局行为。

    • flask.url_for will call app.url_for. #4568

    • flask.abort will call app.aborter. Flask.aborter_class and Flask.make_aborter can be used to customize this aborter. #4567

    • flask.redirect will call app.redirect. #4569

    • flask.json is an instance of JSONProvider. A different provider can be set to use a different JSON library. flask.jsonify will call app.json.response, other functions in flask.json will call corresponding functions in app.json. #4692

  • JSON配置将移至默认属性 app.json 提供商。 JSON_AS_ASCIIJSON_SORT_KEYSJSONIFY_MIMETYPE ,以及 JSONIFY_PRETTYPRINT_REGULAR 都已被弃用。 #4692

  • 设置自定义 json_encoderjson_decoder 应用程序或蓝图上的类以及相应的 json.JSONEncoderJSONDecoder 类,已弃用。JSON行为现在可以使用 app.json 提供程序接口。 #4692

  • json.htmlsafe_dumps and json.htmlsafe_dump are deprecated, the function is built-in to Jinja now. #4692

  • 重构 register_error_handler 以合并错误检查。重写一些错误消息以使其更加一致。 #4559

  • 使用蓝图修饰器和注册蓝图后打算设置的功能将显示警告。在下一个版本中,这将变成一个错误,就像应用程序设置方法一样。 #4571

  • before_first_request is deprecated. Run setup code when creating the application instead. #4605

  • 添加了 View.init_every_request 类属性。如果视图子类将其设置为 False ,则该视图不会针对每个请求创建新实例。 #2520

  • A flask.cli.FlaskGroup 单击组可以作为子命令嵌套在自定义CLI中。 #3263

  • 增列 --app--debug 选项添加到 flask CLI,而不是要求通过环境变量设置它们。 #2836

  • 增列 --env-file 选项添加到 flask CLI。这样除了可以指定要加载的dotenv文件外,还可以指定 .env.flaskenv#3108

  • 不再需要在上修饰自定义CLI命令 app.cliblueprint.cli 使用 @with_appcontext ,应用程序上下文将在该点上处于活动状态。 #2410

  • SessionInterface.get_expiration_time uses a timezone-aware value. #4645

  • 视图函数可以直接返回生成器,而不是将它们包装在 Response#4629

  • 增列 stream_templatestream_template_string 函数将模板呈现为片断流。 #4629

  • 一种在调试和测试过程中保持上下文的新实现。 #4666

    • request, g, and other context-locals point to the correct data when running code in the interactive debugger console. #2836

    • TearDown函数始终在请求结束时运行,即使保留了上下文。它们还会在保存的上下文弹出后运行。

    • stream_with_context 将上下文与 with client 阻止。它将在以下情况下被清理 response.get_data()response.close() 被称为。

  • 允许从视图函数返回列表,将其转换为JSON响应,就像DICT一样。 #4672

  • 类型检查时,允许 TypedDict 从视图函数返回。 #4695

  • 移除 --eager-loading/--lazy-loading 选项中的 flask run 指挥部。该应用程序总是在第一次加载时立即加载,然后在重新加载程序中缓慢加载。重新加载器总是立即打印错误,但会继续服务。拆卸内部 DispatchingApp 前一个实现使用的中间件。 #4715

版本2.1.3

已发布2022/07/13

  • 内联一些仅用于某些CLI命令的可选导入。 #4606

  • 松弛类型批注 after_request 功能。 #4600

  • instance_path for namespace packages uses the path closest to the imported submodule. #4610

  • 当出现以下情况时,错误消息更清晰 render_templaterender_template_string 在应用程序上下文之外使用。 #4693

版本2.1.2

已发布2022-04-28

  • 的FIX类型批注 json.loads ,它接受字符串或字节。 #4519

  • 这个 --cert--key 选项打开 flask run 可以按任一顺序给出。 #4459

版本2.1.1

发布日期:2022-03-30

  • 将Importlib_METADATA的最低要求版本设置为3.6.0,这是在低于3.10的Python上所需的版本。 #4502

版本2.1.0

已发布2022-03-28

  • 放弃对Python3.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

  • 部分参数位于 send_filesend_from_directory 在2.0版中已重命名。旧名称的弃用期限延长至2.2。请确保在测试时显示弃用警告。

    • attachment_filename 已重命名为 download_name

    • cache_timeout 已重命名为 max_age

    • add_etags 已重命名为 etag

    • filename 已重命名为 path

  • 这个 RequestContext.g 属性已弃用。使用 g 直接或 AppContext.g 取而代之的是。 #3898

  • copy_current_request_context can decorate async functions. #4303

  • CLI使用 importlib.metadata 而不是 pkg_resources 要加载命令输入点,请执行以下操作。 #4419

  • 覆盖 FlaskClient.open 不会在重定向时导致错误。 #3396

  • 添加一个 --exclude-patterns 选项添加到 flask run CLI命令指定将被重新加载程序忽略的模式。 #4188

  • 使用延迟加载(调试器的默认设置)时, flask run 命令在加载器线程中保持可用。 #4460

  • 删除会话Cookie使用 httponly 旗帜。 #4485

  • 轻松地打字 errorhandler 以允许用户使用更精确的类型并多次装饰相同的函数。 #4095, #4295, #4297

  • 修复以下项目的键入 __exit__ 与更好地兼容的方法 ExitStack#4474

  • 来自Werkzeug,对于重定向响应 Location 默认情况下,标题URL将保持相对,并排除方案和域。 #4496

  • 增列 Config.from_prefixed_env() 从以开头的环境变量加载配置值 FLASK_ 或者另一个前缀。这在默认情况下将值解析为JSON,并允许在嵌套的Decits中设置键。 #4479

版本2.0.3

已发布2022/02/14

  • 测试客户端的 as_tuple 参数已弃用,将在Werkzeug 2.1中删除。它现在也不建议在Flask2.1中删除,但在2.0.x中仍与两者兼容。使用 response.request.environ 取而代之的是。 #4341

  • 的FIX类型批注 errorhandler 装饰师。 #4295

  • 将导致其隐藏的更改恢复到CLI ImportError 导入应用程序时的回溯。 #4307

  • app.json_encoder and json_decoder are only passed to dumps and loads if they have custom behavior. This improves performance, mainly on PyPy. #4349

  • 当出现以下情况时,错误消息更清晰 after_this_request 在请求上下文之外使用。 #4333

版本2.0.2

已发布2021/10/04

  • 的FIX类型批注 teardown_* 方法:研究方法。 #4093

  • 的FIX类型批注 before_requestbefore_app_request 装修工。 #4104

  • 修复了类型要求模板全局修饰符接受不带参数的函数的问题。 #4098

  • 支持带有异步处理程序的视图和方法视图实例。 #4112

  • 增强打字 app.errorhandler 装饰师。 #4095

  • 修正了用不同的名称注册两次蓝图的问题。 #4124

  • 修复的类型 static_folder 接受 pathlib.Path#4150

  • jsonify handles decimal.Decimal by encoding to str. #4157

  • 正确处理CLI延迟加载中引发的延迟错误。 #4096

  • CLI加载器句柄 **kwargs 在一个 create_app 功能。 #4170

  • 确定……的顺序 before_request 以及在视图返回之前触发的其他回调。它们从应用程序向下调用,直到最接近的嵌套蓝图。 #4229

版本2.0.1

已发布2021-05-21

  • 重新添加 filename 中的参数 send_from_directory 。这个 filename 参数已重命名为 path ,旧名称已弃用。 #4019

  • 将顶级名称标记为已导出,以便类型检查了解用户项目中的导入。 #4024

  • 的FIX类型批注 g 并通知mypy它是具有任意属性的命名空间对象。 #4020

  • 修复一些在Python3.6.0中不可用的类型。 #4040

  • 改进以下项目的打字 send_filesend_from_directory ,以及 get_send_file_max_age#4044#4026

  • 当蓝图名称包含点时显示错误。这个 . 具有特殊含义,它用于分隔(嵌套的)蓝图名称和端点名称。 #4041

  • 嵌套使用 url_prefix 价值。 #4037

  • 将更改恢复为完成URL匹配的顺序。加载会话后,会再次匹配该URL,因此该会话在自定义URL转换器中可用。 #4053

  • 重新添加已弃用 Config.from_json ,它被意外地提前移除。 #4078

  • 使用以下命令改进某些函数的输入 Callable 在他们的类型签名中,重点是装饰工厂。 #4060

  • 嵌套的蓝图使用其虚线名称进行注册。这使得同名的不同设计图可以嵌套在不同的位置。 #4069

  • register_blueprint takes a name option to change the (pre-dotted) name the blueprint is registered with. This allows the same blueprint to be registered multiple times with unique names for url_for. Registering the same blueprint with the same name multiple times is deprecated. #1091

  • 改进以下项目的打字 stream_with_context#4052

版本2.0.0

已发布2021-05-11

  • 放弃对Python2和3.5的支持。

  • Bump其他托盘项目的最低版本:Werkzeug>=2,JJIA2>=3,MarkupSafe>=2,ItsDangious>=2,Click>=8。请务必检查每个项目的更改日志。为了更好地兼容仍然需要Click 7的其他应用程序(例如芹菜),目前还没有对Click 8的硬依赖,但使用Click 7会触发DeproationWarning,而Flask2.1将取决于Click 8。

  • JSON支持不再使用Simplejson。要使用另一个JSON模块,请重写 app.json_encoderjson_decoder#3555

  • 这个 encoding JSON函数的选项已弃用。 #3562

  • 传球 script_info 应用程序工厂函数已弃用。这是不能在外部携带的 flask 指挥部。使用 click.get_current_context().obj 如果需要的话。 #3552

  • 当应用程序在查找命令时加载失败时,CLI会显示更好的错误消息。 #2741

  • 增列 SessionInterface.get_cookie_name 以允许动态设置会话Cookie名称。 #3369

  • 增列 Config.from_file 使用任意文件加载器加载配置,例如 toml.loadjson.loadConfig.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-Typejsonify() 。使用 response.headers.extend() 如果需要扩展的话。 #3628

  • 这个 Scaffold 类提供了一个公共API,用于 FlaskBlueprint 上课。 Blueprint 信息存储在属性中,就像 Flask ,而不是不透明的lambda函数。这是为了提高一致性和可维护性。 #3215

  • 包括 samesitesecure 删除会话Cookie时的选项。 #3726

  • 支持传递 pathlib.Pathstatic_folder#3579

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

  • 一些人 send_file 参数已重命名,旧名称已弃用。 attachment_filename 已重命名为 download_namecache_timeout 已重命名为 max_ageadd_etags 已重命名为 etag#3828, #3883

  • 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

  • 请求上下文在打开会话之前进行路由匹配。这可能允许会话接口根据以下条件更改行为 request.endpoint#3776

  • 使用JJJA的实现 |tojson 过滤。 #3881

  • 为常见的HTTP方法添加路由修饰符。例如, @app.post("/login") 是一条捷径 @app.route("/login", methods=["POST"])#3907

  • 支持异步视图、错误处理程序、请求之前和之后以及teardown功能。 #3412

  • 支持嵌套蓝图。 #593, #1548#3923

  • 加载时将默认编码设置为“UTF-8” .env.flaskenv 允许使用非ASCII字符的文件。 #3931

  • flask shell sets up tab and history completion like the default python shell if readline is installed. #3941

  • helpers.total_seconds() is deprecated. Use timedelta.total_seconds() instead. #3962

  • 添加类型提示。 #3973

版本1.1.4

已发布2021-05-13

  • 更新 static_folder 使用 _compat.fspath 而不是 os.fspath 要继续支持低于3.6版本的Python #4050

版本1.1.3

已发布2021-05-13

  • 设置最高版本的Werkzeug,金家,点击,和它的危险。 #4043

  • 重新添加对传递 pathlib.Pathstatic_folder#3579

版本1.1.2

发布2020-04-03

  • 在运行时解决问题 flask 命令和Windows上的外部调试器。 #3297

  • 静态路由不会捕获所有URL,如果 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。

  • 放弃对Python3.4的支持。

  • 的错误处理程序 InternalServerError500 将始终传递一个 InternalServerError 。如果它们是由于未处理异常而被调用,则原始异常现在可用 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

  • 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 519, 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 命令入口点得到简化,充分利用了沃克泽格0.15‘S更好的重装机支持。这会将Werkzeug依赖项增加到>=0.15。 #3022

  • 支持 static_url_path 这以一个正斜杠结束。 #3134

  • 支撑为空 static_folder 不需要设置空的 static_url_path 也是。 #3124

  • jsonify supports dataclass objects. #3195

  • 允许自定义 Flask.url_map_class 用于布线。 #3069

  • 开发服务器端口可以设置为0,这会告诉操作系统选择一个可用的端口。 #2926

  • 的返回值 cli.load_dotenv 与文档更加一致。它会回来的 False 如果没有安装python-dotenv,或者如果给定的路径不是文件。 #2937

  • 信令支持有一个存根,用于 connect_via 在未安装Blinker库时调用。 #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 如果不是使用SSL支持构建Python,则命令不再失败。使用 --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

  • 修复 PEP 451 导入加载器和pytest 5.x。 #3275

  • 在stderr上显示有关dotenv的消息,而不是在stdout上。 #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

  • 允许使用自定义CLI 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

  • 注册的通用错误处理程序 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.0版

发布2018-04-26

  • 不再支持Python2.6和3.3。

  • 将最低依赖版本升级到最新的稳定版本:Werkzeug>=0.14,JJJA>=2.10,其危险>=0.24,点击>=5.1。 #2586

  • 跳过 app.run 当从命令行运行FlASK应用程序时。这避免了一些令人困惑的调试行为。

  • 更改的默认设置 JSONIFY_PRETTYPRINT_REGULARFalse~json.jsonify 默认情况下返回紧凑格式,在调试模式下返回缩进格式。 #2193

  • Flask.__init__ accepts the host_matching argument and sets it on Flask.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_forFlask.handle_url_build_error#2017

  • Flask.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

  • 获得蓝图 Blueprint.json_encoderBlueprint.json_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_app 从… FLASK_APP#2297

  • 工厂函数不需要使用 script_info 参数来使用 flask 指挥部。如果它们接受单个参数或名为 script_info vt.的. 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 类属性 View.provide_automatic_options 设置在 View.as_view ,以供检测 Flask.add_url_rule#2316

  • 错误处理将尝试注册的处理程序 blueprint, codeapp, codeblueprint, exceptionapp, 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

  • Flask.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 上课。这将添加 Response.is_jsonResponse.get_json 方法添加到响应中,使测试JSON响应更加容易。 #2358

  • 删除了错误处理程序缓存,因为它导致某些异常继承层次结构出现意外结果。如果希望避免遍历MRO,请为每个异常显式注册处理程序。 #2362

  • 修复了Aware、非UTC日期时间的错误JSON编码。 #2374

  • 模板自动重新加载将遵循调试模式,即使 Flask.jinja_env 已经被访问过。 #2373

  • 已删除以下过时的旧代码。 #2385

    • flask.ext -直接按扩展名导入扩展名,而不是通过 flask.ext 命名空间。例如, import flask.ext.sqlalchemy vbl.成为 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

  • 支持传递 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

  • 增列 Flask.test_cli_runner 创建一个Click运行器,该运行器可以调用FlaskCLI命令进行测试。 #2636

  • 默认情况下禁用子域匹配,并设置 SERVER_NAME 不会隐式启用它。它可以通过传递 subdomain_matching=True 发送到 Flask 构造函数。 #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.4

已发布2018-04-29

  • 重新打包0.12.3以修复程序包布局问题。 #2728

版本0.12.3

发布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.2

发布2017-05-16

  • 修复中的错误 safe_join 在Windows上。

版本0.12.1

发布2017-03-31

  • 防患于未然 flask run 从显示一个 NoAppException 当一个 ImportError 在导入的应用程序模块内发生。

  • 修复的编码行为 app.config.from_pyfile 对于Python3。 #2118

  • 使用 SERVER_NAME 配置(如果它作为的默认值存在 app.run#2109#2152

  • 打电话 ctx.auto_pop 使用异常对象代替 None ,如果发生了 BaseException 比如 KeyboardInterrupt 在请求处理程序中引发。

版本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.1

已公布2016-06-07

  • 修复了阻止 FLASK_APP=foobar/__init__.py 从工作中脱身。 #1872

版本0.11

发布2016-05-29,代号Absinthe

  • 添加了对将顶级数组序列化到 jsonify 。这在古老的浏览器中引入了安全风险。

  • 在_RENDER_TEMPLATE信号之前添加。

  • 增列 **kwargsFlask.test_client 支持将其他关键字参数传递给 Flask.test_client_class

  • 增列 SESSION_REFRESH_EACH_REQUEST 控制Set-Cookie行为的配置键。如果设置为 True 如果设置为,则将刷新每个请求的永久会话并延长其生存期 False 只有在会话实际修改时,才会修改它。非永久会话不受此影响,如果浏览器窗口关闭,非永久会话将始终过期。

  • 使FlASK支持传入数据的自定义JSON MIMETYPE。

  • 添加了对在表单中返回元组的支持 (response, headers) 从VIEW函数。

  • 增列 Config.from_json

  • 增列 Flask.config_class

  • 增列 Config.get_namespace

  • 模板不再在调试模式之外自动重新加载。这可以使用新的 TEMPLATES_AUTO_RELOAD 配置密钥。

  • 为Python3.3‘S命名空间加载器中的限制添加了解决方法。

  • 添加了使用Python3.3‘S命名空间包时对显式根路径的支持。

  • 增列 flask 以及 flask.cli 模块通过CLI系统启动本地调试服务器。这是推荐的,而不是旧的 flask.run() 方法,因为它的工作速度更快、更可靠,这是因为采用了不同的设计,并且还替换了 Flask-Script

  • 现在首先检查与特定类匹配的错误处理程序,从而允许捕获作为HTTP异常的子类的异常(在 werkzeug.exceptions )。这使得扩展作者可以创建默认情况下会导致他们选择的HTTP错误的异常,但如果需要,可以使用自定义错误处理程序捕获这些异常。

  • 增列 Config.from_mapping

  • 现在,即使禁用了DEBUG,FASK也会默认记录。日志格式现在是硬编码的,但默认日志处理可以通过 LOGGER_HANDLER_POLICY 配置密钥。

  • 删除了不推荐使用的模块功能。

  • 添加了 EXPLAIN_TEMPLATE_LOADING 配置标志,当启用该标志时,将指示烧瓶解释如何定位模板。这应该有助于用户在加载错误的模板时进行调试。

  • 按照模板加载的注册顺序强制执行蓝图处理。

  • 将测试套件移植到py.test。

  • 已弃用 request.json 赞成…… request.get_json()

  • 在jsonify()方法中添加“美观”和“压缩”分隔符定义。在以下情况下减小JSON响应大小 JSONIFY_PRETTYPRINT_REGULAR=False 通过删除默认情况下在分隔符之后包含的不必要空格。

  • JSON响应现在以换行符结尾,因为按照惯例,Unix文本文件以换行符结尾,并且某些客户端在缺少换行符时不能很好地处理。 #1262

  • 自动提供的 OPTIONS 如果用户使用小写版本注册了重写规则,则现在正确禁用了方法 options#1288

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

  • 不要将已捕获的异常的异常信息泄露给上下文拆卸处理程序。 #1393

  • 允许自定义JJJA环境子类。 #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 在……里面 helpers.find_package 并提供一条有用的消息,解释为什么在 PEP 302 使用导入挂接时不带 is_package() 方法。

  • 修复了导致在输入请求或应用程序上下文之前引发的异常被传递给拆卸处理程序的问题。

  • 修复了在请求绝对URL时从测试客户端的请求中删除查询参数的问题。

  • 制造 @before_first_request 就像预期的那样变成了一个装饰师。

  • 修复了在发送带有名称的文件流时出现的eTags错误。

  • 固定 send_from_directory 未正确展开到应用程序根路径。

  • 更改了第一个请求处理程序之前的逻辑,以在调用后翻转标志。这将允许一些潜在危险但可能应该被允许的用途。

  • 修复了处理程序从 app.url_build_error_handlers 重新设计了 BuildError

版本0.10.1

已发布2013-06-14

  • 修复了以下问题 |tojson 没有用单引号引起来,这会使过滤器在HTML属性中无法正常工作。现在可以在单引号属性中使用该过滤器。这应该会使该滤镜更容易与angular.js一起使用。

  • 向会话系统添加了对字节字符串的支持。这打破了人们将用于令牌验证的二进制数据放入会话的常见情况的兼容性。

  • 修复了为同一终结点注册同一方法两次会错误地触发异常的问题。

版本0.10

2013-06-13发布,代号Limoncello

  • 将默认Cookie序列化格式从PICLE更改为JSON,以限制在密钥泄露时攻击者可能造成的影响。

  • 增列 template_test 方法添加到已有的 template_filter 方法族。

  • 增列 template_global 方法添加到已有的 template_filter 方法族。

  • 设置x-sendfile的内容长度标头。

  • tojson 过滤器现在不会转义HTML5解析器中的脚本块。

  • tojson 在模板中使用现在默认情况下是安全的。由于逃逸行为的不同,这是允许的。

  • 现在,如果您尝试在已使用的终结点上注册新函数,则Flask会引发错误。

  • 添加了围绕Simplejson的包装器模块,并添加了DateTime对象的默认序列化。这允许更轻松地定制FlaskTM或任何FlaskTM扩展处理JSON的方式。

  • 删除了不推荐使用的内部 flask.session 模块别名。使用 flask.sessions 取而代之的是获取会话模块。这不能与之混淆 flask.session 会话代理。

  • 现在可以在没有请求上下文的情况下呈现模板。行为略有不同,因为 requestsessiong 对象将不可用,并且不调用BluePrint的上下文处理器。

  • 配置对象现在作为真正的全局对象可用于模板,而不是通过上下文处理器,这使得它在默认情况下甚至在导入的模板中也可用。

  • 添加了生成非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以来它所做的相比,这是一个更好的名字。

  • requestsessiong 现在还作为代理添加到模板上下文中,从而使它们在导入的模板中可用。但是,必须非常小心地处理这些问题,因为在宏外使用可能会导致缓存。

  • 如果传递了代理异常,则FASK将不再调用错误的错误处理程序。

  • 添加了本地主机中Chrome的Cookie无法与域名一起工作的解决方法。

  • 更改了从会话中选择Cookie值的默认值的逻辑,以便更好地与Google Chrome一起工作。

  • 增列 message_flashed 简化闪烁测试的信号。

  • 添加了对复制请求上下文的支持,以便更好地使用Greenlet。

  • 删除了自定义JSON HTTP异常子类。如果你依赖它们,你可以自己简单地重新引入它们。然而,由于界面有缺陷,强烈反对使用它们。

  • 更改了对Python的要求:现在需要Python2.6或2.7来为Python3.3的移植做准备。

  • 更改了tearDown系统通知异常的方式。现在,如果某个对象在错误处理过程的中途处理异常,这将更加可靠。

  • 调试模式中的请求上下文保存现在保留了周围的异常信息,这意味着teardown处理程序能够区分错误和成功案例。

  • 添加了 JSONIFY_PRETTYPRINT_REGULAR 配置变量。

  • FASK现在默认情况下对JSON键进行排序,不会因为不同工作进程之间的散列种子不同而对HTTP缓存进行垃圾处理。

  • 增列 appcontext_pushedappcontext_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规则。

  • LOGGER现在只返回未显式设置的调试日志设置。

  • 关闭请求时,取消注册WSGI环境和请求对象之间的循环依赖关系。这意味着环境 werkzeug.request 将会是 None 在响应返回到WSGI服务器之后,但它的优点是CPython上不需要垃圾收集器来拆分请求,除非用户自己创建循环依赖项。

  • 会话现在存储在回调之后,因此如果会话有效负载存储在会话中,您仍然可以在请求之后的回调中修改它。

  • 这个 Flask 类将尽可能避免导入所提供的导入名称(所需的第一个参数),从而有利于以编程方式构建Flask实例的工具。在带有定制模块钩子的系统(例如Google App Engine)上,或者当导入名称位于早于Python2.7的压缩存档(通常是一个鸡蛋)中时,Flask类将退回到使用导入。

  • BluePrints现在有一个装饰器,可以在应用程序范围内添加自定义模板过滤器, Blueprint.app_template_filter

  • Flask类和Blueprint类现在具有用于在应用程序范围内添加自定义模板筛选器的非修饰符方法, Flask.add_template_filterBlueprint.add_app_template_filter

  • 这个 get_flashed_messages 函数现在允许在单独的块中呈现闪烁的消息类别,方法是 category_filter 争论。

  • 这个 Flask.run 方法现在接受 Nonehostport 参数,在以下情况下使用默认值 None 。这允许使用配置值调用Run,例如 app.run(app.config.get('MYHOST'), app.config.get('MYPORT')) ,无论是否提供配置文件,都具有正确的行为。

  • 这个 render_template 方法现在接受模板名称的可迭代或单个模板名称。以前,它只接受一个模板名称。在Iterable上,呈现找到的第一个模板。

  • 增列 Flask.app_context 其工作方式与请求上下文非常相似,但仅提供对当前应用程序的访问。这还增加了对没有活动请求上下文的URL生成的支持。

  • 视图函数现在可以返回一个元组,其中第一个实例是 Response 。这允许返回 jsonify(error="error msg"), 400 从VIEW函数。

  • FlaskBlueprint 现在提供一个 get_send_file_max_age 用于子类的挂钩,以重写在使用 Flask.send_static_file (用于默认静态文件处理程序)和 helpers.send_file 。此挂接被提供一个文件名,例如,它允许按文件扩展名更改缓存控制。的默认最大年龄 send_file 静态文件可以通过新的 SEND_FILE_MAX_AGE_DEFAULT 配置变量,它在默认情况下使用 get_send_file_max_age 实施。

  • 修复了会话实现中的一个假设,该假设可能会中断使用外部存储的会话实现上的消息闪烁。

  • 更改了函数的元组返回值的行为。它们不再是响应对象的参数,它们现在有了定义的含义。

  • 增列 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异常和错误请求错误,以便它们在回溯中正常显示。

  • 处于调试模式的FASK现在正在检测一些常见问题,并试图就此向您发出警告。

  • 如果在处理第一个请求之后附加了一个视图,则调试模式下的FlASK现在将报告断言错误。当用户忘记提前导入视图代码时,这会提供更早的反馈。

  • 添加了注册仅在第一个请求开始时触发一次的回调的功能 Flask.before_first_request

  • 格式错误的JSON数据现在将触发错误的请求HTTP异常,而不是值错误,如果不处理,后者通常会导致500内部服务器错误。这是一个向后不兼容的更改。

  • 应用程序现在不仅有一个资源和模块所在的根路径,而且还有一个实例路径,它是放置在运行时修改的文件的指定位置(上传等)。此外,从概念上讲,这是唯一依赖于实例的外部版本控制,因此它是放置配置文件等的完美位置。

  • 添加了 APPLICATION_ROOT 配置变量。

  • 已实施 TestClient.session_transaction 以轻松修改测试环境中的会话。

  • 内部重构了测试客户端。这个 APPLICATION_ROOT 配置变量以及 SERVER_NAME 现在被测试客户端正确地用作默认设置。

  • 增列 View.decorators 以支持可插拔(基于类的)视图的更简单的装饰。

  • 修复了测试客户端与“with”语句一起使用时不会触发teardown处理程序执行的问题。

  • 添加了对会话Cookie参数的更精细控制。

  • 对方法视图的Head请求现在自动分派到 get 如果没有实现处理程序,则调用。

  • 实施了虚拟 flask.ext 要从中导入扩展的包。

  • 关于异常的上下文保存现在是FlaskTM本身的一个组成部分,而不再是测试客户端的一个组成部分。这清理了一些内部逻辑,降低了单元测试中请求上下文失控的几率。

  • 修复了JJAA2环境的 list_templates 方法在涉及蓝图或模块时未返回正确的名称。

版本0.7.2

已发布2011-07-06

  • 修复了URL处理器无法正确处理蓝图的问题。

版本0.7.1

已发布2011-06-29

  • 添加了破坏2.5兼容性的缺失的未来导入。

  • 修正了蓝图无限重定向的问题。

0.7版

发布2011-06-28,代号Grappa

  • 增列 Flask.make_default_options_response 它可由子类用来更改 OPTIONS 回应。

  • 未绑定的当地人现在提出了一个适当的 RuntimeError 而不是一个 AttributeError

  • 现在不建议使用基于文件对象的Mimetype猜测和ETag支持 send_file 因为它不可靠。改为传递文件名或附加您自己的eTag,并手动提供正确的MIMETYPE。

  • 模块的静态文件处理现在需要显式提供静态文件夹的名称。之前的自动检测并不可靠,并导致谷歌的App Engine出现问题。在1.0之前,旧的行为将继续工作,但会发出依赖警告。

  • 修复了FlaskJython上运行的问题。

  • 添加了一个 PROPAGATE_EXCEPTIONS 可用于翻转先前链接到的异常传播的设置的配置变量 DEBUG ,并且现在链接到任何一个 DEBUGTESTING

  • 烧瓶不再在内部依赖于通过 add_url_rule 函数,现在还可以接受添加到url映射中的常规的werkzeug规则。

  • 添加了一个 endpoint 方法添加到flASK应用程序对象,该对象允许用户使用修饰符注册对任意端点的回调。

  • 将Last-Modify用于静态文件发送,而不是0.6中错误引入的日期。

  • 增列 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参数。

  • 不修改上的会话 get_flashed_messages 如果会话中没有消息,则返回。

  • before_request 处理程序现在能够中止出现错误的请求。

  • 无法定义用户异常处理程序。这样,您就可以从中央集线器为请求处理过程中可能发生的某些错误(例如数据库连接错误、远程资源超时等)提供定制错误消息。

  • BluePrints可以提供BluePrint特定的错误处理程序。

  • 实现了基于类的泛型视图。

版本0.6.1

已发布2010-12-31

  • 修复了默认设置为 OPTIONS 响应未公开 Allow 标题。

  • Jinsa2模板加载语法现在允许在模板加载路径前面使用“./”。以前,这会导致模块设置出现问题。

  • 修复了静态文件夹忽略模块的子域设置的问题。

  • 修复了一个安全问题,如果主机服务器是基于Windows的操作系统,并且客户端使用反斜杠来转义暴露文件的目录,则允许客户端下载任意文件。

版本0.6

发布2010-07-27,代号威士忌

  • 在请求之后,现在以与注册相反的顺序调用函数。

  • 现在,除非应用程序显式地将‘Options’作为方法添加到URL规则中,否则选项将由FlaskTM自动实现。在这种情况下,没有自动选项处理起作用。

  • 如果没有用于模块的静态文件夹,现在甚至可以使用静态规则。这是为了帮助GAE,如果静态文件夹是.yml文件中映射的一部分,它将删除该文件夹。

  • Flask.config 现已在模板中提供为 config

  • 上下文处理器将不再覆盖直接传递给呈现函数的值。

  • 添加了使用新的 MAX_CONTENT_LENGTH 配置值。

  • 对象的终结点 Module.add_url_rule 方法现在是可选的,以与应用程序对象上的同名函数保持一致。

  • 添加了一个 make_response 该函数简化了在视图中创建响应对象实例的过程。

  • 增加了基于闪光灯的信号支持。这一功能目前是可选的,应该由扩展和应用程序使用。如果你想使用它,一定要有 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 配置密钥。该密钥现在还用于设置跨子域范围的会话Cookie。

  • 对于所有模板,自动转义不再处于活动状态。取而代之的是,它仅在 .html.htm.xml.xhtml 。在模板中,可以使用 autoescape 标签。

  • 内部重构的烧瓶。它现在由多个文件组成。

  • send_file 现在发射电子标签,并有能力进行条件响应内置。

  • (暂时)放弃对压缩应用程序的支持。这是一个很少使用的功能,并导致了一些令人困惑的行为。

  • 添加了对每个包模板和静态文件目录的支持。

  • 删除对以下各项的支持 create_jinja_loader 由于改进了模块支持,在0.5中不再使用它。

  • 添加了一个帮助器函数,以公开任何目录中的文件。

版本0.4

发布2010-06-18,代号拉基亚

  • 添加了从模块注册应用程序范围的错误处理程序的功能。

  • Flask.after_request 现在,如果请求因异常而终止,并且错误处理页开始生效,处理程序也会被调用。

  • 测试客户端不能将请求上下文保留更长时间。这也可用于触发不弹出请求堆栈进行测试的自定义请求。

  • 因为Python标准库缓存了记录器,所以记录器的名称现在是可配置的,以便更好地支持单元测试。

  • 增列 TESTING 可以激活单元测试助手的开关。

  • 记录器切换到 DEBUG 如果启用调试,则立即模式。

版本0.3.1

发布2010-05-28

  • 使用修复了错误报告错误 Config.from_envvar

  • 删除了一些未使用的代码。

  • 该版本不再包含开发遗留文件(主题的.git文件夹、压缩和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

  • 模块支持和内部请求处理重构,以更好地支持可插拔应用程序。

  • 现在可以将会话设置为每个会话的永久会话。

  • 更好地报告丢失密钥的错误。

  • 添加了对Google AppEngine的支持。

版本0.1

发布2010-04-16

  • 首次公开发布预览版。