在send_from_directory中重新添加文件名参数。 FileName参数已重命名为路径,旧名称已弃用。 #4019
颠簸最小版本的其他托盘项目:Werkzeug> = 2,Jinja2> = 3,Markupsafe> = 2,它andange> = 2,单击> = 8.是sureto检查每个项目的更改日志。为了更好地兼容仍需要单击7的其他应用程序(例如Celery),尚未单击8的硬依赖项,但使用Click 7 WillTrigger折旧运行和烧瓶2.1将取决于单击8。
JSON支持不再使用SimpleJson。使用另一个JSON模块,覆盖app.json_encoder和json_decoder。 #3555
将script_info传递给应用程序出厂函数。在烧瓶命令外,不可携带。使用click.get_current_context()。obj如果需要。 #3552
当应用程序查找命令时,CLI显示更好的错误消息。 #2741
使用任意FileLoader(如Toml.load或JSON.Load)添加Config.from_file()加载配置。 CONFIG.FROM_JSON()已弃用支持此功能。 #3398
烧瓶运行命令将仅推迟重新加载错误。初始调用期间的错误将导致服务器立即退出回溯。 #3431
send_file()在文本模式传递IO对象时引发值。以前,它会响应200 ok和一个空文件。 #3358
加载.env或.flaskenv文件时,当前工作指向不再更改为文件的位置。 #3560
当从视图返回(响应,标题)元组时,expereers替换而不是在响应上延长现有标题。如图所示,这允许设置jsonify()的内容类型。使用response.headers.extend()如果延伸isdesifire。 #3628
脚手架类为烧瓶和蓝图类提供了一个共同的API。蓝图信息仅仅像瓶子一样存储,而不是不透明的Lambda函数。这旨在提高一致性和可维护性。 #3215
一些send_file参数已重命名,旧名称aredepecated。附件_filename重命名为download_name。 cache_timeout重命名为max_age。 add_etags是entag的。 #3828,#3883
send_file设置条件= true and max_age = none bydefault。如果MAX_AGE ISNOT设置,否则将缓存控制设置为NO-CACHE。这将浏览器介绍给ValidateConditional请求,而不是使用定时缓存。 #3828
请求上下文在打开会话之前执行匹配。这可能允许会话界面基于Request.endpoint更改行为。 #3776
添加常用HTTP方法的路由装饰器。例如,@ app.post(" / login")是@ app.route的快捷方式(" / login"方法= [" post"]) 。 #3907
加载.env和.flaskenv文件时将默认编码设置为“UTF-8”允许使用非ASCII字符。 #3931
如果已安装Readline,则烧瓶壳设置默认Python shell等默认Python shell。 #3941
在Windows上使用Anexternal调试器运行Flask命令时,在运行Flask命令时解决问题。 #3297
如果FLASK STOTIC_FOLDER参数以斜杠结束,则静态路由将不会捕获所有URL。 #3452
填充物。添加了一些扩展名的兼容性。使用时会提高弃用警告,并将在2.0.0版本中删除。 #3288
InternalServerError或500的错误处理程序将始终呈现InternalServerError的实例。如果它们被调用到未处理的异常,则原始异常现在可用作e.original_exception而不是传递给处理程序。如果处理程序适用于贝等HttpException,则相同。这使得错误处理程序行为杂乱。 #3266
呈现与(作为烧瓶(Import_name)传递的值相同的名称。这将恢复1.0 alupangging to" flask.app"以支持在Chesame进程中的多个应用程序。将显示警告如果旧配置是需要移动的。#2866
flask.requestContext.Copy()包括“请求上下文”复制中的当前SessionObject。这可以防止会话点到过期对象。 #2935
使用内置equestContext,不可打印的Unicode字符Inhost标题将导致HTTP 400响应而不是HTTP 500远离。 #2994
open_resource()接受“RT”文件模式。这仍然像“R”一样。 #3163
是一个代表而不是允许更容易的配置。在创建环境之前必须进行更改。 #3190
烧瓶的jsonmixin为请求和响应包装者被播放为werkzeug。使用werkzeug的版本使用flask-cidenticsupport。这碰到了Werkzeug依赖于> = 0.15。 #3125
简化了烧瓶命令入口点以利用Werkzeug 0.15更好的重装器支持。这碰到了> = 0.15的Werkzeugdependency。 #3022
开发服务器端口可以设置为0,告诉OS Toitick可用端口。 #2926
来自cli.load_dotenv()的返回值更像文档。如果安装了python-dotenv iSnot,或者给定路径不是文件,它将返回false。 #2937
信令支持有一个存根for connect_via方法,没有安装闪光库库。 #3208
将-extra-files选项添加到烧瓶运行cli命令thofify额外的文件,将触发更改的重件。 #2897
允许从视图函数返回字典。类似于Howreturning字符串将产生文本/ HTML响应,Returninga Dict将调用Jsonify以生成应用程序/ jsonResponse。 #3111
蓝图有一个CLI单击像App.Cli这样的组。 CLI CommentSregistReed将作为Flask命令下的组可用作一个组。 #1357。
使用测试客户端作为上下文管理器(使用Client :)时,块退出时会弹出所有保留的请求上下文,确保正确清理嵌套上下文。 #3157
如果Python未构建,则烧瓶运行命令不再失败。使用--cert选项将显示不当错误消息。 #3211
URL匹配现在发生在请求上下文被推动之后,而不是创建时。这允许自定义URL转换器访问应用程序和请求上下文,例如为ID查询数据库。 #3088
BadrequestKeyError的关键信息不再是ClearedOutside调试模式,因此错误处理程序仍然可以访问它。此命令升级到Werkzeug 0.15.5。 #3249
send_file url引用一些浏览器中的oreecompatible utf-8文件名支持的“:”和“/”字符。 #3074
send_file()将文件名编码为ASCII而不是拉丁语-1(ISO-8859-1)。这个修复了孔雀兼容性,哪个是关于标题编码而不是pep 3333.#2766
允许使用FlaskGroup允许自定义CLI设置调试标志,而始终基于环境变量覆盖。 #2765
send_file()处理具有UTF-8编码字节的Antation_FileName,其是有害Python 2字符串(字节)。 #2933
为HttpException注册的Catch-所有错误处理程序都不会授权在内部进行的routingException。这修复了引入的意外行为1.0。 #2986
不要处理从视图函数返回的列表相同与元组一样。将元组被解释为响应数据。 #2736
在蓝图的URL_PREFIX和LORE URLARE合并的路由之间的额外斜线。这将在1.0中修复了TheChange的一些向后兼容性问题。 #2731,#2742
只陷入调试模式下的BadrequestKeyError错误,并非所有Badrequest错误。这允许中止(400)按预期继续工作。 #2735
FLASK_SKIP_DOTENV环境变量可以设置为1跳过自动加载DOTENV文件。 #2722
最新稳定版本的衰减最小依赖版本:werkzeug> = 0.14,金鸡> = 2.10,它致力于> = 0.24,单击> = 5.1。 #2586
跳过app.run当烧瓶应用程序运行时命令行。这避免了一些困惑调试的行为。
将默认值更改为jsonify_prettyprint_regular至false。 jsonify()返回bydefault的紧凑格式,以及调试模式下的缩进格式。 #2193
烧瓶.__ init__接受static_host Argumentand在定义staticraoute时将其传递为主机参数。 #1559
在Questest开始时打开会话时造成的错误由应用程序的错误处理程序处理。 #2254
flask.make_response()引发TypeError而不是valueError以获取坏响应类型。错误消息已被推明以描述类型为无效的原因。 #2256
在会话cookie域名是一个裸机或iPaddress时,显示警告,因为这些浏览器可能无法正常,如此。 #2282
工厂功能不需要拍摄脚本_infoparameter与烧瓶命令一起使用。如果他们采用单个参数或名为script_info的参数,则将传递ScriptInfo对象。 #2319
Flask_App可以指向未安装不可行模式的本地包,尽管PIP安装-e仍然是优选的。 #2414
如果在请求期间访问(而未删除)访问,则Cookie将添加到响应的差异标题中。 #2288
将application_root设置为' /'默认。当它设置为none时,这已经是隐式默认值。
默认在调试模式下启用Trap_bad_request_errors。 BadrequestKeyError在通用错误请求消息的Debug ModeInstead中具有错误键。 #2348
如果请求尚未被推到Thecontext堆栈中,才会打开会话。这允许Stream_with_context()生成器访问包含视图使用的相同会话。 #2354
为测试客户端请求方法添加JSON关键字参数。这会将给定对象转储为JSON并设置拨款间类型。 #2358
将JSON处理到应用于请求和响应类的MixIn。这将添加is_json()和get_json()方法,以便对测试JSON响应更容易。 #2358
删除了错误处理程序缓存,因为它导致了意外结果,这是一些异常继承层次结构。如果要避免遍历Themro,请注册每个异常的处理程序。 #2362
flask.ext - 直接通过flask.ext命名空间导入扩展名称。例如,导入flask.ext.sqlalchemy成为导入flask_sqlalchemy。
如果python-dotenv Installed,Flask命令和flask.run()将从.env和.flaskenv文件加载环境variables。 #2416
在将完整的URL传递给测试客户端时,将在URL中验证的方案而不是proferent_url_scheme。 #2430
已经简化了。删除logger_name和logger_handler_policy config。记录器始终名称为flask.app。级别仅在第一次访问时设置,它每次都不检查。只有一种格式被当作,而不是不同的格式。 nohandlers被删除,只有在没有配置的处理程序时,才会添加处理程序。 #2436
pass -cert和 - -key选项到烧瓶运行以通过HTTPS运行thedevelopment服务器。 #2606
添加了test_cli_runner()以创建单击runnerthat可以调用flask cli命令进行测试。 #2636
默认情况下禁用子域匹匹配,并且设置server_name不会隐式启用它。它可以通过将子域_matching = true传递给烧瓶构造函数。 #2635
在使用应用程序注册时,从蓝图URL_PREFIX删除单个尾随斜杠。 #2629 Request.get_json()不再接受任意编码.Comcoming JSON应使用每RFC 8259的UTF-8进行编码,Butflask将自动检测UTF-8,-16或-32。 #2691 添加max_cookie_size并控制Werkzeug警告浏览器Mayignore的大cookie。 #2693 重写教程文档和示例项目以采取造型的方法来帮助新用户避免常见的陷阱。 #2676 Request.get_json()不再接受任意编码.Comcoming JSON应使用每RFC 8259的UTF-8进行编码,Butflask将自动检测UTF-8,-16或-32。 #2692 当ImportError发生在导入的应用程序模块中时,防止烧瓶从显示NoAppException。 如果在请求处理程序中提出的BaseException(例如KeyBoardIntRuktis)中提出的BaseException,则将CTX.auto_pop调用了异常对象而不是none。
MimeType猜测Send_file现在大声失败,并没有回退到应用程序/八位字节流。 #1988
恢复使DEV服务器崩溃的行为更改,而不是重新调整内部服务器错误。 #2006.
添加session_refresh_each_request config键,用于控制截图-Cookie行为。如果设置为true,永久会话将Berfreshed每个请求并获得其生命周期,如果设置为false,则只有在会话实际修改时才会修改它。如果浏览器窗口关闭,则只能修改该会话并将在浏览器窗口关闭,如果浏览器窗口关闭。
模板不再自动重新加载debugmode。这可以使用新的templates_auto_reloadconfig键配置。
添加了烧瓶和烧瓶.CLI模块以通过单击CLI系统启动Thelocal Debug服务器。这是推荐旧的flask.run()方法,因为它由于不同的设计而工作得更快,更荒谬,并且还取代了瓶锁脚本。
首先检查匹配特定类的错误处理程序,从而允许捕获httpExceptions子类(在werkzeug.exceptions中的子类的异常。这使得可以创建一个默认结果将默认产生的例外创建异常,但如果需要,可以使用CustomError处理程序捕获。
即使禁用调试,烧瓶现在也将默认记录。 LogFormat现在硬编码,但默认的日志处理可以默认为logger_handler_policy配置密钥。
添加了Applox_Template_loading Config标志,WhenEnabled将指示Flask解释其定位模板的解释。这应该有助于用户在加载错误的模板时调试。
在jsonify()方法中添加“漂亮”和“压缩”分隔符定义。通过删除分隔符之后默认包含的不必要的空格,减少JSONIFY_PRETTYPRINT_REGULAS = FALSS时缩小JSON响应大小。
JSON响应现在终止了一个换行符,因为unix文本文件以换行符结束的惯例,并且在缺少此换行符时,子项不会很好地处理。这是uporiginally作为https://github.com/postmanlabs/httpbin/issues/168的一部分。 #1262
如果用户使用ThelowerCase版本选项注册了覆盖规则,则自动提供的选项方法现在已正确启用。 #1288
在flask.find_package()中引导一个属性错误,使用有用的消息解释为什么在没有is_package()方法的情况下使用PEP 302import钩子时引发它的原因。
修复了在进入请求者应用程序上下文之前引发异常的问题,以传递给Teardown处理程序。
修复了查询参数的问题,当请求绝对URL时,从RequestSIN中删除了查询参数。
更改了第一个请求处理程序之前的逻辑,以翻转鞭标器调用。这将允许一些潜在的用途,但可能被允许。
修复了在HTML属性中不适用于HTML属性中的过滤器无法正常工作的单引号(ToJson未引用单引号)。现在它可以在单引用的属性中使用该过滤器。这应该使用该过滤器与Angular.js更轻松。
添加了对字节字符串的支持回到会话系统。此目前与将BinaryData授权验证的人兼容令牌兼容。
修复了两次为andendPoint注册相同方法的问题将触发错误的异常。
将默认Cookie序列化格式从泡块更改为JSON Tolimit如果秘密密钥泄漏,攻击者可以执行的影响。
在模板中使用的托杰森现在是安全的默认情况下。由于不同的逃逸行为,这是如此。
如果您尝试在已使用的端点上注册新功能,则烧瓶现在将引发错误。
添加了SimpleJson周围的包装模块,并添加了DateTime对象的DefaultSerialization。这允许JSON如何由烧瓶或任何裂隙性处理的更容易化。
删除已弃用的内部Flask.Session模块别名。使用flask.sessions,而不是获取会话模块。这不是与flask.session会议代理混淆。
现在可以在没有请求上下文的情况下渲染模板。作为请求,会话和gobjects的行为略有不同,而且蓝图的上下文处理器arenot调用。
Config对象现在可以使用模板作为真正的Globaland,而不是通过上下文处理器,这使得默认情况下可用的是InImported模板。
添加了一个选项,可以生成非ASCII编码的JSON,其中在通过网络传输的不那么字节中应列出该json。默认情况下,它被启用,不会导致现有Librariesthat混淆可能会默认期望Flask.json.dumps返回字节。
Flask.g现在可以与IN运营商一起使用,看看是什么,它现在是易在的,它将产生存储的所有属性。
请求,会话和g现在也添加为代理Tothe tothe topte模板上下文,这使得它们可用于ImportedTemplates。一个人必须非常小心,虽然因为在宏之外可能导致缓存。
如果通过ProxyException通过,则烧瓶将不再调用错误的错误处理程序。 在localhost中为Chrome的cookie添加了一个解决方法,而不是用域名编写。 更改了逻辑用于从Sessionsto的Cookie值选择Cookie值,使用Google Chrome更好地工作。 删除了自定义JSON HTTP异常子类。 如果你是依靠他们,你可以自然地重新引入他们。 然而,使用界面存在缺陷时强烈呼气。 改变了Deatdown系统如何了解例外。 此目前在处理错误处理过程中的异常中,现在更可靠。 请求上下文保存在调试模式下,现在保持异常信息,这意味着Teardown处理程序能够从成功案例中无法区分错误。 烧瓶现在默认订购了JSON键,不能在不同工人之间垃圾HTTP缓存Dueto不同的哈希种子。
“内置”运行方法现在将Server_Name视为选择默认端口运行时的帐户。
FLASK.URL_FOR()函数现在也可以明确地生成特定于给定HTTP方法的规则。
在关闭请求时,在WSGI环境和请求对象之间取消注册循环依赖性。这意味着鉴于响应向WSGI服务器进行了响应但具有在CPython上不需要拆除请求的优势,除非用户创建了循环依赖性,否则将在WSGI服务器上进行响应以逐步拆除请求的优势。
会话现在存储在回调之后,以便如果存储在会话中的会话Payloadis,您仍然可以在requestCallback后修改它。
如果它可以(所需的第一个参数)(所需的第一个参数),则避免导入提供的verientimport名称,以编程构建烧瓶实例的vertiftools。烧瓶类码头返回为使用自定义模块挂钩的系统导入,例如,使用自定义模块挂钩。 Google App Engine,或者当导入名称在Python 2.7之前的ZiParchive(通常是.egg)内时。
烧瓶和蓝图课程现在有一个非洲
......