变化¶
版本2.0.0¶
未发布的
放弃对Python2和3.5的支持。
JSON支持不再使用simplejson。要使用另一个JSON模块,请重写
app.json_encoder
和json_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.load
或json.load
.Config.from_json()
不赞成这样做。 #3398这个
flask run
命令只会延迟重新加载时的错误。初始调用期间出现的错误将导致服务器立即退出并进行回溯。 #3431send_file()
raises aValueError
when passed anio
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
类为Flask
和Blueprint
类。Blueprint
信息存储在属性中,就像Flask
,而不是不透明的lambda函数。这是为了提高一致性和可维护性。 #3215包括
samesite
和secure
删除会话cookie时的选项。 #3726支持通过A
pathlib.Path
到static_folder
. #3579send_file
andsend_from_directory
are wrappers around the implementations inwerkzeug.utils
. #3828一些
send_file
参数已重命名,旧名称已弃用。attachment_filename
已重命名为download_name
.cache_timeout
已重命名为max_age
. #3828send_file
passesdownload_name
even ifas_attachment=False
by usingContent-Disposition: inline
. #3828send_file
setsconditional=True
andmax_age=None
by default.Cache-Control
is set tono-cache
ifmax_age
is not set, otherwisepublic
. This tells browsers to validate conditional requests instead of using a timed cache. #3828helpers.safe_join
is deprecated. Usewerkzeug.utils.safe_join
instead. #3828
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
. 这使得错误处理程序的行为更加一致。 #3266Flask.finalize_request()
为所有未处理的异常调用,即使没有500
错误处理程序。
Flask.logger
takes the same name asFlask.name
(the value passed asFlask(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. #2866flask.RequestContext.copy()
includes the current session object in the request context copy. This preventssession
pointing to an out-of-date object. #2935使用内置的requestContext,主机头中不可打印的unicode字符将导致HTTP 400响应,而不是以前的HTTP 500。 #2994
send_file()
supportsPathLike
objects as described in PEP 0519, to supportpathlib
in Python 3. #3059send_file()
supportsBytesIO
partial content. #2957open_resource()
accepts the "rt" file mode. This still does the same thing as "r". #3163这个
MethodView.methods
基类中的属性集由子类使用。 #3138Flask.jinja_options
is adict
instead of anImmutableDict
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
也。 #3124jsonify()
supportsdataclasses.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 classflask.testing.EnvironBuilder
. #3232这个
flask run
如果Python不是使用SSL支持构建的,则命令不再失败。使用--cert
选项将显示相应的错误消息。 #3211URL匹配现在发生在请求上下文被推送之后,而不是在它被创建时。这允许自定义URL转换器访问应用程序和请求上下文,例如查询数据库中的id。 #3088
版本1.0.4¶
发布日期:2019-07-04
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
设置调试标志,而不总是根据环境变量覆盖它。 #2765flask --version
outputs Werkzeug's version and simplifies the Python version. #2825send_file()
handles anattachment_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.1版本¶
发布日期:2018-04-29
版本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_REGULAR
到False
.jsonify()
默认情况下返回压缩格式,在调试模式下返回缩进格式。 #2193Flask.__init__
accepts thehost_matching
argument and sets it onurl_map
. #1559Flask.__init__
accepts thestatic_host
argument and passes it as thehost
argument when defining the static route. #1559send_file()
supports Unicode inattachment_filename
. #2223通过
_scheme
论证从url_for()
到handle_url_build_error()
. #2017add_url_rule()
accepts theprovide_automatic_options
argument to disable adding theOPTIONS
method. #1489MethodView
subclasses inherit method handlers from base classes. #1936在请求开始时打开会话时导致的错误由应用程序的错误处理程序处理。 #2254
获得蓝图
json_encoder
和json_decoder
覆盖应用程序编码器和解码器的属性。 #1898Flask.make_response()
raisesTypeError
instead ofValueError
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 throughSERVER_NAME
. #2282自动检测零参数应用程序工厂调用
create_app
或make_app
从FLASK_APP
. #2297工厂功能不需要采取
script_info
要使用的参数flask
命令。如果它们接受一个参数或一个名为script_info
, theScriptInfo
将传递对象。 #2319FLASK_APP
can be set to an app factory, with arguments if needed, for exampleFLASK_APP=myproject.app:create_app('dev')
. #2326FLASK_APP
can point to local packages that are not installed in editable mode, althoughpip install -e
is still preferred. #2414这个
View
类属性provide_automatic_options
设置在as_view()
,由检测add_url_rule()
. #2316错误处理将尝试为注册的处理程序
blueprint, code
,app, code
,blueprint, exception
,app, exception
. #2314Cookie
is added to the response'sVary
header if the session is accessed at all during the request (and not deleted). #2288test_request_context()
acceptssubdomain
andurl_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处理提取到应用于
Request
和Response
类。这增加了is_json()
和get_json()
方法对响应进行响应,使测试JSON响应更加容易。 #2358已删除错误处理程序缓存,因为它导致某些异常继承层次结构出现意外结果。如果要避免遍历MRO,请为每个异常显式注册处理程序。 #2362
修复已知的非UTC日期时间的JSON编码错误。 #2374
删除了以下旧的不推荐使用的代码。 #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支持通过A
EnvironBuilder
或dict
到test_client.open
. #2412这个
flask
命令和Flask.run()
将从中加载环境变量.env
和.flaskenv
文件(如果安装了python dotenv)。 #2416当向测试客户机传递完整的URL时,将使用URL中的方案而不是
PREFERRED_URL_SCHEME
. #2430Flask.logger
has been simplified.LOGGER_NAME
andLOGGER_HANDLER_POLICY
config was removed. The logger is always namedflask.app
. The level is only set on first access, it doesn't checkFlask.debug
each time. Only one format is used, not different ones depending onFlask.debug
. No handlers are removed, and a handler is only added if no handlers are already configured. #2436蓝图视图函数名不能包含点。 #2450
修复一
ValueError
无效引起的Range
在某些情况下请求。 #2526开发服务器默认使用线程。 #2529
通过
--cert
和--key
选项到flask run
通过HTTPS运行开发服务器。 #2606补充
SESSION_COOKIE_SAMESITE
控制SameSite
会话cookie的属性。 #2607补充
test_cli_runner()
要创建可调用flask cli命令进行测试的单击运行程序。 #2636默认情况下禁用子域匹配并设置
SERVER_NAME
不会隐式启用它。它可以通过传递来启用subdomain_matching=True
到Flask
建造师。 #2635从蓝图中剥离出一条尾随斜线。
url_prefix
当它注册到应用程序时。 #2629Request.get_json()
doesn't cache the result if parsing fails whensilent
is true. #2651Request.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_SIZE
和Response.max_cookie_size
控制Werkzeug何时警告浏览器可能忽略的大型cookie。 #2693更新了文档主题,使文档在小窗口中看起来更好。 #2709
重新编写教程文档和示例项目,以采用更结构化的方法来帮助新用户避免常见的陷阱。 #2676
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-03-31
版本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-05-29,代号苦艾酒
添加了对将顶级数组序列化为
flask.jsonify()
. 这在古代浏览器中引入了安全风险。在呈现模板信号之前添加。
补充
**kwargs
到flask.Test.test_client()
支持向的构造函数传递其他关键字参数flask.Flask.test_client_class
.补充
SESSION_REFRESH_EACH_REQUEST
控制设置cookie行为的配置键。如果设置为True
如果设置为,永久会话将刷新每个请求并延长其生存期。False
只有当会话实际修改时,才会修改它。非永久会话不受此影响,并且在浏览器窗口关闭时将始终过期。制作的flask支持输入数据的自定义JSON mimetype。
添加了对在表单中返回元组的支持
(response, headers)
从视图函数。不再在调试模式之外自动重新加载模板。这可以用新的
TEMPLATES_AUTO_RELOAD
配置密钥。为Python3.3的名称空间加载器中的限制添加了一个变通方法。
在使用Python3.3的名称空间包时添加了对显式根路径的支持。
补充 flask 以及
flask.cli
模块通过click CLI系统启动本地调试服务器。这是建议超过旧的flask.run()
方法,因为它的工作速度更快,更可靠,由于一个不同的设计,也取代了Flask-Script
.现在首先检查匹配特定类的错误处理程序,从而允许捕获属于HTTP异常子类的异常(在
werkzeug.exceptions
). 这使得扩展作者可以创建异常,这些异常在默认情况下会导致他们所选择的HTTP错误,但是如果需要,可以使用自定义错误处理程序捕获。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
. #1288flask.json.jsonify
now supports thedatetime.date
type. #1326不要将已经捕获的异常的异常信息泄漏给上下文拆分处理程序。 #1393
允许自定义Jinja环境子类。 #1422
更新了扩展开发指南。
flask.g
现在有pop()
和setdefault
方法。打开自动退出
flask.templating.render_template_string
默认情况下。 #1515flask.ext
is now deprecated. #1484send_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
会话代理。现在可以在没有请求上下文的情况下呈现模板。行为与
request
,session
和g
对象将不可用,并且不会调用蓝图的上下文处理器。配置对象现在作为一个真正的全局对象对模板可用,而不是通过一个上下文处理器(默认情况下甚至在导入的模板中也可以使用该对象)。
添加了一个选项来生成非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将不再调用错误的错误处理程序。
在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_pushed
和appcontext_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.request
将None
在将响应返回到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
对于host
和port
参数,使用默认值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
从视图函数。Flask
和Blueprint
现在提供一个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.stream_with_context()
以及多次推送上下文而不产生意外行为的能力。
版本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¶
发布日期: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
单独的,现在与DEBUG
或TESTING
.烧瓶内部不再依赖于通过
add_url_rule
函数,现在还可以接受添加到URL映射的常规werkzeug规则。增加了一个
endpoint
方法调用Flask应用程序对象,该对象允许使用修饰符注册对任意端点的回调。使用上次修改的静态文件发送,而不是0.6中错误引入的日期。
补充
create_jinja_loader
覆盖加载程序创建过程。为实现静默标志
config.from_pyfile
.补充
teardown_request
decorator,用于不管是否发生异常都应在请求结束时运行的函数。同样的行为after_request
已更改。它现在不再在引发异常时执行。已弃用
init_jinja_globals
. 覆盖create_jinja_environment()
方法来实现相同的功能。自动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¶
发布于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的支持。