变化

版本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 . 如果由于未处理的异常而调用了它们,则原始异常现在可以作为 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, 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

  • 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属性中正常工作。现在可以在单引号属性中使用该过滤器。这应该使使用过滤器角度.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 会话代理。

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

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

  • 添加了一个选项来生成非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 现在还将作为代理添加到模板上下文中,从而使它们在导入的模板中可用。但人们必须非常小心地使用这些宏,因为在宏之外使用可能会导致缓存。

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

  • 在localhost中添加了一个解决Chrome cookie的方法,该方法不适用于域名。

  • 更改了从会话中选择cookie值默认值的逻辑,以便更好地使用Google Chrome。

  • 补充 message_flashed 简化闪光测试的信号。

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

  • 已删除自定义JSON子类HTTP异常。如果你依赖于他们,你可以重新介绍他们自己琐碎。但是,强烈建议不要使用它们,因为接口有缺陷。

  • python需求发生了变化:现在需要python 2.6或2.7来准备python 3.3端口。

  • 更改了如何通知拆卸系统异常。现在,如果在错误处理过程的中途有人处理异常,这种方法就更可靠了。

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

  • 增加了 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适配器的创建方式。现在可以使用 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 标签。

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

  • 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

  • 首次公开预览发布。