forked from orbit-oss/flask
remove reference links from changelog
This commit is contained in:
parent
2869ddf50c
commit
363be75e84
1 changed files with 193 additions and 217 deletions
410
CHANGES.rst
410
CHANGES.rst
|
|
@ -1,5 +1,3 @@
|
|||
.. currentmodule:: flask
|
||||
|
||||
Version 2.1.3
|
||||
-------------
|
||||
|
||||
|
|
@ -199,17 +197,17 @@ Released 2021-05-11
|
|||
``click.get_current_context().obj`` if it's needed. :issue:`3552`
|
||||
- The CLI shows better error messages when the app failed to load
|
||||
when looking up commands. :issue:`2741`
|
||||
- Add :meth:`sessions.SessionInterface.get_cookie_name` to allow
|
||||
setting the session cookie name dynamically. :pr:`3369`
|
||||
- Add :meth:`Config.from_file` to load config using arbitrary file
|
||||
- Add ``SessionInterface.get_cookie_name`` to allow setting the
|
||||
session cookie name dynamically. :pr:`3369`
|
||||
- Add ``Config.from_file`` to load config using arbitrary file
|
||||
loaders, such as ``toml.load`` or ``json.load``.
|
||||
:meth:`Config.from_json` is deprecated in favor of this. :pr:`3398`
|
||||
``Config.from_json`` is deprecated in favor of this. :pr:`3398`
|
||||
- The ``flask run`` command will only defer errors on reload. Errors
|
||||
present during the initial call will cause the server to exit with
|
||||
the traceback immediately. :issue:`3431`
|
||||
- :func:`send_file` raises a :exc:`ValueError` when passed an
|
||||
:mod:`io` object in text mode. Previously, it would respond with
|
||||
200 OK and an empty file. :issue:`3358`
|
||||
- ``send_file`` raises a ``ValueError`` when passed an ``io`` object
|
||||
in text mode. Previously, it would respond with 200 OK and an empty
|
||||
file. :issue:`3358`
|
||||
- When using ad-hoc certificates, check for the cryptography library
|
||||
instead of PyOpenSSL. :pr:`3492`
|
||||
- When specifying a factory function with ``FLASK_APP``, keyword
|
||||
|
|
@ -320,31 +318,29 @@ Released 2019-07-04
|
|||
base ``HTTPException``. This makes error handler behavior more
|
||||
consistent. :pr:`3266`
|
||||
|
||||
- :meth:`Flask.finalize_request` is called for all unhandled
|
||||
- ``Flask.finalize_request`` is called for all unhandled
|
||||
exceptions even if there is no ``500`` error handler.
|
||||
|
||||
- :attr:`Flask.logger` takes the same name as
|
||||
:attr:`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
|
||||
- ``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. :issue:`2866`
|
||||
- :meth:`flask.RequestContext.copy` includes the current session
|
||||
object in the request context copy. This prevents ``session``
|
||||
pointing to an out-of-date object. :issue:`2935`
|
||||
- ``RequestContext.copy`` includes the current session object in the
|
||||
request context copy. This prevents ``session`` pointing to an
|
||||
out-of-date object. :issue:`2935`
|
||||
- Using built-in RequestContext, unprintable Unicode characters in
|
||||
Host header will result in a HTTP 400 response and not HTTP 500 as
|
||||
previously. :pr:`2994`
|
||||
- :func:`send_file` supports :class:`~os.PathLike` objects as
|
||||
described in PEP 0519, to support :mod:`pathlib` in Python 3.
|
||||
:pr:`3059`
|
||||
- :func:`send_file` supports :class:`~io.BytesIO` partial content.
|
||||
- ``send_file`` supports ``PathLike`` objects as described in
|
||||
:pep:`519`, to support ``pathlib`` in Python 3. :pr:`3059`
|
||||
- ``send_file`` supports ``BytesIO`` partial content.
|
||||
:issue:`2957`
|
||||
- :func:`open_resource` accepts the "rt" file mode. This still does
|
||||
the same thing as "r". :issue:`3163`
|
||||
- The :attr:`MethodView.methods` attribute set in a base class is used
|
||||
by subclasses. :issue:`3138`
|
||||
- :attr:`Flask.jinja_options` is a ``dict`` instead of an
|
||||
- ``open_resource`` accepts the "rt" file mode. This still does the
|
||||
same thing as "r". :issue:`3163`
|
||||
- The ``MethodView.methods`` attribute set in a base class is used by
|
||||
subclasses. :issue:`3138`
|
||||
- ``Flask.jinja_options`` is a ``dict`` instead of an
|
||||
``ImmutableDict`` to allow easier configuration. Changes must still
|
||||
be made before creating the environment. :pr:`3190`
|
||||
- Flask's ``JSONMixin`` for the request and response wrappers was
|
||||
|
|
@ -358,15 +354,14 @@ Released 2019-07-04
|
|||
:issue:`3134`
|
||||
- Support empty ``static_folder`` without requiring setting an empty
|
||||
``static_url_path`` as well. :pr:`3124`
|
||||
- :meth:`jsonify` supports :class:`dataclasses.dataclass` objects.
|
||||
:pr:`3195`
|
||||
- Allow customizing the :attr:`Flask.url_map_class` used for routing.
|
||||
- ``jsonify`` supports ``dataclass`` objects. :pr:`3195`
|
||||
- Allow customizing the ``Flask.url_map_class`` used for routing.
|
||||
:pr:`3069`
|
||||
- The development server port can be set to 0, which tells the OS to
|
||||
pick an available port. :issue:`2926`
|
||||
- The return value from :meth:`cli.load_dotenv` is more consistent
|
||||
with the documentation. It will return ``False`` if python-dotenv is
|
||||
not installed, or if the given path isn't a file. :issue:`2937`
|
||||
- The return value from ``cli.load_dotenv`` is more consistent with
|
||||
the documentation. It will return ``False`` if python-dotenv is not
|
||||
installed, or if the given path isn't a file. :issue:`2937`
|
||||
- Signaling support has a stub for the ``connect_via`` method when
|
||||
the Blinker library is not installed. :pr:`3208`
|
||||
- Add an ``--extra-files`` option to the ``flask run`` CLI command to
|
||||
|
|
@ -405,7 +400,7 @@ Released 2019-07-04
|
|||
requires upgrading to Werkzeug 0.15.5. :issue:`3249`
|
||||
- ``send_file`` url quotes the ":" and "/" characters for more
|
||||
compatible UTF-8 filename support in some browsers. :issue:`3074`
|
||||
- Fixes for PEP451 import loaders and pytest 5.x. :issue:`3275`
|
||||
- Fixes for :pep:`451` import loaders and pytest 5.x. :issue:`3275`
|
||||
- Show message about dotenv on stderr instead of stdout. :issue:`3285`
|
||||
|
||||
|
||||
|
|
@ -414,16 +409,16 @@ Version 1.0.3
|
|||
|
||||
Released 2019-05-17
|
||||
|
||||
- :func:`send_file` encodes filenames as ASCII instead of Latin-1
|
||||
- ``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. :issue:`2766`
|
||||
stricter about header encodings than :pep:`3333`. :issue:`2766`
|
||||
- Allow custom CLIs using ``FlaskGroup`` to set the debug flag without
|
||||
it always being overwritten based on environment variables.
|
||||
:pr:`2765`
|
||||
- ``flask --version`` outputs Werkzeug's version and simplifies the
|
||||
Python version. :pr:`2825`
|
||||
- :func:`send_file` handles an ``attachment_filename`` that is a
|
||||
native Python 2 string (bytes) with UTF-8 coded bytes. :issue:`2933`
|
||||
- ``send_file`` handles an ``attachment_filename`` that is a native
|
||||
Python 2 string (bytes) with UTF-8 coded bytes. :issue:`2933`
|
||||
- A catch-all error handler registered for ``HTTPException`` will not
|
||||
handle ``RoutingException``, which is used internally during
|
||||
routing. This fixes the unexpected behavior that had been introduced
|
||||
|
|
@ -471,32 +466,30 @@ Released 2018-04-26
|
|||
- Bump minimum dependency versions to the latest stable versions:
|
||||
Werkzeug >= 0.14, Jinja >= 2.10, itsdangerous >= 0.24, Click >= 5.1.
|
||||
:issue:`2586`
|
||||
- Skip :meth:`app.run <Flask.run>` when a Flask application is run
|
||||
from the command line. This avoids some behavior that was confusing
|
||||
to debug.
|
||||
- Change the default for :data:`JSONIFY_PRETTYPRINT_REGULAR` to
|
||||
``False``. :func:`~json.jsonify` returns a compact format by
|
||||
default, and an indented format in debug mode. :pr:`2193`
|
||||
- :meth:`Flask.__init__ <Flask>` accepts the ``host_matching``
|
||||
argument and sets it on :attr:`~Flask.url_map`. :issue:`1559`
|
||||
- :meth:`Flask.__init__ <Flask>` accepts the ``static_host`` argument
|
||||
and passes it as the ``host`` argument when defining the static
|
||||
route. :issue:`1559`
|
||||
- :func:`send_file` supports Unicode in ``attachment_filename``.
|
||||
- Skip ``app.run`` when a Flask application is run from the command
|
||||
line. This avoids some behavior that was confusing to debug.
|
||||
- Change the default for ``JSONIFY_PRETTYPRINT_REGULAR`` to
|
||||
``False``. ``~json.jsonify`` returns a compact format by default,
|
||||
and an indented format in debug mode. :pr:`2193`
|
||||
- ``Flask.__init__`` accepts the ``host_matching`` argument and sets
|
||||
it on ``Flask.url_map``. :issue:`1559`
|
||||
- ``Flask.__init__`` accepts the ``static_host`` argument and passes
|
||||
it as the ``host`` argument when defining the static route.
|
||||
:issue:`1559`
|
||||
- ``send_file`` supports Unicode in ``attachment_filename``.
|
||||
:pr:`2223`
|
||||
- Pass ``_scheme`` argument from :func:`url_for` to
|
||||
:meth:`~Flask.handle_url_build_error`. :pr:`2017`
|
||||
- :meth:`~Flask.add_url_rule` accepts the
|
||||
``provide_automatic_options`` argument to disable adding the
|
||||
``OPTIONS`` method. :pr:`1489`
|
||||
- :class:`~views.MethodView` subclasses inherit method handlers from
|
||||
base classes. :pr:`1936`
|
||||
- Pass ``_scheme`` argument from ``url_for`` to
|
||||
``Flask.handle_url_build_error``. :pr:`2017`
|
||||
- ``Flask.add_url_rule`` accepts the ``provide_automatic_options``
|
||||
argument to disable adding the ``OPTIONS`` method. :pr:`1489`
|
||||
- ``MethodView`` subclasses inherit method handlers from base classes.
|
||||
:pr:`1936`
|
||||
- Errors caused while opening the session at the beginning of the
|
||||
request are handled by the app's error handlers. :pr:`2254`
|
||||
- Blueprints gained :attr:`~Blueprint.json_encoder` and
|
||||
:attr:`~Blueprint.json_decoder` attributes to override the app's
|
||||
- Blueprints gained ``Blueprint.json_encoder`` and
|
||||
``Blueprint.json_decoder`` attributes to override the app's
|
||||
encoder and decoder. :pr:`1898`
|
||||
- :meth:`Flask.make_response` raises ``TypeError`` instead of
|
||||
- ``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. :pr:`2256`
|
||||
- Add ``routes`` CLI command to output routes registered on the
|
||||
|
|
@ -511,52 +504,49 @@ Released 2018-04-26
|
|||
``make_app`` from ``FLASK_APP``. :pr:`2297`
|
||||
- Factory functions are not required to take a ``script_info``
|
||||
parameter to work with the ``flask`` command. If they take a single
|
||||
parameter or a parameter named ``script_info``, the
|
||||
:class:`~cli.ScriptInfo` object will be passed. :pr:`2319`
|
||||
parameter or a parameter named ``script_info``, the ``ScriptInfo``
|
||||
object will be passed. :pr:`2319`
|
||||
- ``FLASK_APP`` can be set to an app factory, with arguments if
|
||||
needed, for example ``FLASK_APP=myproject.app:create_app('dev')``.
|
||||
:pr:`2326`
|
||||
- ``FLASK_APP`` can point to local packages that are not installed in
|
||||
editable mode, although ``pip install -e`` is still preferred.
|
||||
:pr:`2414`
|
||||
- The :class:`~views.View` class attribute
|
||||
:attr:`~views.View.provide_automatic_options` is set in
|
||||
:meth:`~views.View.as_view`, to be detected by
|
||||
:meth:`~Flask.add_url_rule`. :pr:`2316`
|
||||
- The ``View`` class attribute
|
||||
``View.provide_automatic_options`` is set in ``View.as_view``, to be
|
||||
detected by ``Flask.add_url_rule``. :pr:`2316`
|
||||
- Error handling will try handlers registered for ``blueprint, code``,
|
||||
``app, code``, ``blueprint, exception``, ``app, exception``.
|
||||
:pr:`2314`
|
||||
- ``Cookie`` is added to the response's ``Vary`` header if the session
|
||||
is accessed at all during the request (and not deleted). :pr:`2288`
|
||||
- :meth:`~Flask.test_request_context` accepts ``subdomain`` and
|
||||
- ``Flask.test_request_context`` accepts ``subdomain`` and
|
||||
``url_scheme`` arguments for use when building the base URL.
|
||||
:pr:`1621`
|
||||
- Set :data:`APPLICATION_ROOT` to ``'/'`` by default. This was already
|
||||
the implicit default when it was set to ``None``.
|
||||
- :data:`TRAP_BAD_REQUEST_ERRORS` is enabled by default in debug mode.
|
||||
- Set ``APPLICATION_ROOT`` to ``'/'`` by default. This was already the
|
||||
implicit default when it was set to ``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. :pr:`2348`
|
||||
- Allow registering new tags with
|
||||
:class:`~json.tag.TaggedJSONSerializer` to support storing other
|
||||
types in the session cookie. :pr:`2352`
|
||||
- Allow registering new tags with ``TaggedJSONSerializer`` to support
|
||||
storing other types in the session cookie. :pr:`2352`
|
||||
- Only open the session if the request has not been pushed onto the
|
||||
context stack yet. This allows :func:`~stream_with_context`
|
||||
generators to access the same session that the containing view uses.
|
||||
:pr:`2354`
|
||||
context stack yet. This allows ``stream_with_context`` generators to
|
||||
access the same session that the containing view uses. :pr:`2354`
|
||||
- Add ``json`` keyword argument for the test client request methods.
|
||||
This will dump the given object as JSON and set the appropriate
|
||||
content type. :pr:`2358`
|
||||
- Extract JSON handling to a mixin applied to both the
|
||||
:class:`Request` and :class:`Response` classes. This adds the
|
||||
:meth:`~Response.is_json` and :meth:`~Response.get_json` methods to
|
||||
the response to make testing JSON response much easier. :pr:`2358`
|
||||
- Extract JSON handling to a mixin applied to both the ``Request`` and
|
||||
``Response`` classes. This adds the ``Response.is_json`` and
|
||||
``Response.get_json`` methods to the response to make testing JSON
|
||||
response much easier. :pr:`2358`
|
||||
- Removed error handler caching because it caused unexpected results
|
||||
for some exception inheritance hierarchies. Register handlers
|
||||
explicitly for each exception if you want to avoid traversing the
|
||||
MRO. :pr:`2362`
|
||||
- Fix incorrect JSON encoding of aware, non-UTC datetimes. :pr:`2374`
|
||||
- Template auto reloading will honor debug mode even even if
|
||||
:attr:`~Flask.jinja_env` was already accessed. :pr:`2373`
|
||||
``Flask.jinja_env`` was already accessed. :pr:`2373`
|
||||
- The following old deprecated code was removed. :issue:`2385`
|
||||
|
||||
- ``flask.ext`` - import extensions directly by their name instead
|
||||
|
|
@ -564,57 +554,55 @@ Released 2018-04-26
|
|||
``import flask.ext.sqlalchemy`` becomes
|
||||
``import flask_sqlalchemy``.
|
||||
- ``Flask.init_jinja_globals`` - extend
|
||||
:meth:`Flask.create_jinja_environment` instead.
|
||||
``Flask.create_jinja_environment`` instead.
|
||||
- ``Flask.error_handlers`` - tracked by
|
||||
:attr:`Flask.error_handler_spec`, use :meth:`Flask.errorhandler`
|
||||
``Flask.error_handler_spec``, use ``Flask.errorhandler``
|
||||
to register handlers.
|
||||
- ``Flask.request_globals_class`` - use
|
||||
:attr:`Flask.app_ctx_globals_class` instead.
|
||||
- ``Flask.static_path`` - use :attr:`Flask.static_url_path`
|
||||
instead.
|
||||
- ``Request.module`` - use :attr:`Request.blueprint` instead.
|
||||
``Flask.app_ctx_globals_class`` instead.
|
||||
- ``Flask.static_path`` - use ``Flask.static_url_path`` instead.
|
||||
- ``Request.module`` - use ``Request.blueprint`` instead.
|
||||
|
||||
- The :attr:`Request.json` property is no longer deprecated.
|
||||
:issue:`1421`
|
||||
- Support passing a :class:`~werkzeug.test.EnvironBuilder` or ``dict``
|
||||
to :meth:`test_client.open <werkzeug.test.Client.open>`. :pr:`2412`
|
||||
- The ``flask`` command and :meth:`Flask.run` will load environment
|
||||
- The ``Request.json`` property is no longer deprecated. :issue:`1421`
|
||||
- Support passing a ``EnvironBuilder`` or ``dict`` to
|
||||
``test_client.open``. :pr:`2412`
|
||||
- The ``flask`` command and ``Flask.run`` will load environment
|
||||
variables from ``.env`` and ``.flaskenv`` files if python-dotenv is
|
||||
installed. :pr:`2416`
|
||||
- When passing a full URL to the test client, the scheme in the URL is
|
||||
used instead of :data:`PREFERRED_URL_SCHEME`. :pr:`2430`
|
||||
- :attr:`Flask.logger` has been simplified. ``LOGGER_NAME`` and
|
||||
used instead of ``PREFERRED_URL_SCHEME``. :pr:`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 :attr:`Flask.debug` each time. Only one format is
|
||||
used, not different ones depending on :attr:`Flask.debug`. No
|
||||
handlers are removed, and a handler is only added if no handlers are
|
||||
already configured. :pr:`2436`
|
||||
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. :pr:`2436`
|
||||
- Blueprint view function names may not contain dots. :pr:`2450`
|
||||
- Fix a ``ValueError`` caused by invalid ``Range`` requests in some
|
||||
cases. :issue:`2526`
|
||||
- The development server uses threads by default. :pr:`2529`
|
||||
- Loading config files with ``silent=True`` will ignore
|
||||
:data:`~errno.ENOTDIR` errors. :pr:`2581`
|
||||
- Loading config files with ``silent=True`` will ignore ``ENOTDIR``
|
||||
errors. :pr:`2581`
|
||||
- Pass ``--cert`` and ``--key`` options to ``flask run`` to run the
|
||||
development server over HTTPS. :pr:`2606`
|
||||
- Added :data:`SESSION_COOKIE_SAMESITE` to control the ``SameSite``
|
||||
- Added ``SESSION_COOKIE_SAMESITE`` to control the ``SameSite``
|
||||
attribute on the session cookie. :pr:`2607`
|
||||
- Added :meth:`~flask.Flask.test_cli_runner` to create a Click runner
|
||||
that can invoke Flask CLI commands for testing. :pr:`2636`
|
||||
- Added ``Flask.test_cli_runner`` to create a Click runner that can
|
||||
invoke Flask CLI commands for testing. :pr:`2636`
|
||||
- Subdomain matching is disabled by default and setting
|
||||
:data:`SERVER_NAME` does not implicitly enable it. It can be enabled
|
||||
by passing ``subdomain_matching=True`` to the ``Flask`` constructor.
|
||||
``SERVER_NAME`` does not implicitly enable it. It can be enabled by
|
||||
passing ``subdomain_matching=True`` to the ``Flask`` constructor.
|
||||
:pr:`2635`
|
||||
- A single trailing slash is stripped from the blueprint
|
||||
``url_prefix`` when it is registered with the app. :pr:`2629`
|
||||
- :meth:`Request.get_json` doesn't cache the result if parsing fails
|
||||
when ``silent`` is true. :issue:`2651`
|
||||
- :func:`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. :pr:`2691`
|
||||
- Added :data:`MAX_COOKIE_SIZE` and :attr:`Response.max_cookie_size`
|
||||
to control when Werkzeug warns about large cookies that browsers may
|
||||
- ``Request.get_json`` doesn't cache the result if parsing fails when
|
||||
``silent`` is true. :issue:`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. :pr:`2691`
|
||||
- Added ``MAX_COOKIE_SIZE`` and ``Response.max_cookie_size`` to
|
||||
control when Werkzeug warns about large cookies that browsers may
|
||||
ignore. :pr:`2693`
|
||||
- Updated documentation theme to make docs look better in small
|
||||
windows. :pr:`2709`
|
||||
|
|
@ -644,7 +632,7 @@ Version 0.12.3
|
|||
|
||||
Released 2018-04-26
|
||||
|
||||
- :func:`Request.get_json` no longer accepts arbitrary encodings.
|
||||
- ``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. :issue:`2692`
|
||||
- Fix a Python warning about imports when using ``python -m flask``.
|
||||
|
|
@ -714,13 +702,12 @@ Version 0.11
|
|||
|
||||
Released 2016-05-29, codename Absinthe
|
||||
|
||||
- Added support to serializing top-level arrays to
|
||||
:func:`flask.jsonify`. This introduces a security risk in ancient
|
||||
browsers.
|
||||
- Added support to serializing top-level arrays to ``jsonify``. This
|
||||
introduces a security risk in ancient browsers.
|
||||
- Added before_render_template signal.
|
||||
- Added ``**kwargs`` to :meth:`flask.Test.test_client` to support
|
||||
passing additional keyword arguments to the constructor of
|
||||
:attr:`flask.Flask.test_client_class`.
|
||||
- Added ``**kwargs`` to ``Flask.test_client`` to support passing
|
||||
additional keyword arguments to the constructor of
|
||||
``Flask.test_client_class``.
|
||||
- Added ``SESSION_REFRESH_EACH_REQUEST`` config key that controls the
|
||||
set-cookie behavior. If set to ``True`` a permanent session will be
|
||||
refreshed each request and get their lifetime extended, if set to
|
||||
|
|
@ -730,9 +717,9 @@ Released 2016-05-29, codename Absinthe
|
|||
- Made Flask support custom JSON mimetypes for incoming data.
|
||||
- Added support for returning tuples in the form ``(response,
|
||||
headers)`` from a view function.
|
||||
- Added :meth:`flask.Config.from_json`.
|
||||
- Added :attr:`flask.Flask.config_class`.
|
||||
- Added :meth:`flask.Config.get_namespace`.
|
||||
- Added ``Config.from_json``.
|
||||
- Added ``Flask.config_class``.
|
||||
- Added ``Config.get_namespace``.
|
||||
- Templates are no longer automatically reloaded outside of debug
|
||||
mode. This can be configured with the new ``TEMPLATES_AUTO_RELOAD``
|
||||
config key.
|
||||
|
|
@ -740,7 +727,7 @@ Released 2016-05-29, codename Absinthe
|
|||
loader.
|
||||
- Added support for explicit root paths when using Python 3.3's
|
||||
namespace packages.
|
||||
- Added :command:`flask` and the ``flask.cli`` module to start the
|
||||
- Added ``flask`` and the ``flask.cli`` module to start the
|
||||
local debug server through the click CLI system. This is recommended
|
||||
over the old ``flask.run()`` method as it works faster and more
|
||||
reliable due to a different design and also replaces
|
||||
|
|
@ -751,7 +738,7 @@ Released 2016-05-29, codename Absinthe
|
|||
an extension author to create exceptions that will by default result
|
||||
in the HTTP error of their choosing, but may be caught with a custom
|
||||
error handler if desired.
|
||||
- Added :meth:`flask.Config.from_mapping`.
|
||||
- Added ``Config.from_mapping``.
|
||||
- Flask will now log by default even if debug is disabled. The log
|
||||
format is now hardcoded but the default log handling can be disabled
|
||||
through the ``LOGGER_HANDLER_POLICY`` configuration key.
|
||||
|
|
@ -769,9 +756,7 @@ Released 2016-05-29, codename Absinthe
|
|||
space included by default after separators.
|
||||
- JSON responses are now terminated with a newline character, because
|
||||
it is a convention that UNIX text files end with a newline and some
|
||||
clients don't deal well when this newline is missing. This came up
|
||||
originally as a part of
|
||||
https://github.com/postmanlabs/httpbin/issues/168. :pr:`1262`
|
||||
clients don't deal well when this newline is missing. :pr:`1262`
|
||||
- The automatically provided ``OPTIONS`` method is now correctly
|
||||
disabled if the user registered an overriding rule with the
|
||||
lowercase-version ``options``. :issue:`1288`
|
||||
|
|
@ -791,9 +776,9 @@ Released 2016-05-29, codename Absinthe
|
|||
- Exceptions during teardown handling will no longer leave bad
|
||||
application contexts lingering around.
|
||||
- Fixed broken ``test_appcontext_signals()`` test case.
|
||||
- Raise an :exc:`AttributeError` in :func:`flask.helpers.find_package`
|
||||
with a useful message explaining why it is raised when a PEP 302
|
||||
import hook is used without an ``is_package()`` method.
|
||||
- Raise an ``AttributeError`` in ``helpers.find_package`` with a
|
||||
useful message explaining why it is raised when a :pep:`302` import
|
||||
hook is used without an ``is_package()`` method.
|
||||
- Fixed an issue causing exceptions raised before entering a request
|
||||
or app context to be passed to teardown handlers.
|
||||
- Fixed an issue with query parameters getting removed from requests
|
||||
|
|
@ -909,12 +894,12 @@ Version 0.9
|
|||
|
||||
Released 2012-07-01, codename Campari
|
||||
|
||||
- The :func:`flask.Request.on_json_loading_failed` now returns a JSON
|
||||
formatted response by default.
|
||||
- The :func:`flask.url_for` function now can generate anchors to the
|
||||
generated links.
|
||||
- The :func:`flask.url_for` function now can also explicitly generate
|
||||
URL rules specific to a given HTTP method.
|
||||
- The ``Request.on_json_loading_failed`` now returns a JSON formatted
|
||||
response by default.
|
||||
- The ``url_for`` function now can generate anchors to the generated
|
||||
links.
|
||||
- The ``url_for`` function now can also explicitly generate URL rules
|
||||
specific to a given HTTP method.
|
||||
- Logger now only returns the debug log setting if it was not set
|
||||
explicitly.
|
||||
- Unregister a circular dependency between the WSGI environment and
|
||||
|
|
@ -926,42 +911,41 @@ Released 2012-07-01, codename Campari
|
|||
- Session is now stored after callbacks so that if the session payload
|
||||
is stored in the session you can still modify it in an after request
|
||||
callback.
|
||||
- The :class:`flask.Flask` class will avoid importing the provided
|
||||
import name if it can (the required first parameter), to benefit
|
||||
tools which build Flask instances programmatically. The Flask class
|
||||
will fall back to using import on systems with custom module hooks,
|
||||
e.g. Google App Engine, or when the import name is inside a zip
|
||||
archive (usually a .egg) prior to Python 2.7.
|
||||
- The ``Flask`` class will avoid importing the provided import name if
|
||||
it can (the required first parameter), to benefit tools which build
|
||||
Flask instances programmatically. The Flask class will fall back to
|
||||
using import on systems with custom module hooks, e.g. Google App
|
||||
Engine, or when the import name is inside a zip archive (usually an
|
||||
egg) prior to Python 2.7.
|
||||
- Blueprints now have a decorator to add custom template filters
|
||||
application wide, :meth:`flask.Blueprint.app_template_filter`.
|
||||
application wide, ``Blueprint.app_template_filter``.
|
||||
- The Flask and Blueprint classes now have a non-decorator method for
|
||||
adding custom template filters application wide,
|
||||
:meth:`flask.Flask.add_template_filter` and
|
||||
:meth:`flask.Blueprint.add_app_template_filter`.
|
||||
- The :func:`flask.get_flashed_messages` function now allows rendering
|
||||
flashed message categories in separate blocks, through a
|
||||
``category_filter`` argument.
|
||||
- The :meth:`flask.Flask.run` method now accepts ``None`` for ``host``
|
||||
and ``port`` arguments, using default values when ``None``. This
|
||||
allows for calling run using configuration values, e.g.
|
||||
``Flask.add_template_filter`` and
|
||||
``Blueprint.add_app_template_filter``.
|
||||
- The ``get_flashed_messages`` function now allows rendering flashed
|
||||
message categories in separate blocks, through a ``category_filter``
|
||||
argument.
|
||||
- The ``Flask.run`` method now accepts ``None`` for ``host`` and
|
||||
``port`` arguments, using default values when ``None``. This allows
|
||||
for calling run using configuration values, e.g.
|
||||
``app.run(app.config.get('MYHOST'), app.config.get('MYPORT'))``,
|
||||
with proper behavior whether or not a config file is provided.
|
||||
- The :meth:`flask.render_template` method now accepts a either an
|
||||
iterable of template names or a single template name. Previously, it
|
||||
only accepted a single template name. On an iterable, the first
|
||||
template found is rendered.
|
||||
- Added :meth:`flask.Flask.app_context` which works very similar to
|
||||
the request context but only provides access to the current
|
||||
application. This also adds support for URL generation without an
|
||||
active request context.
|
||||
- The ``render_template`` method now accepts a either an iterable of
|
||||
template names or a single template name. Previously, it only
|
||||
accepted a single template name. On an iterable, the first template
|
||||
found is rendered.
|
||||
- Added ``Flask.app_context`` which works very similar to the request
|
||||
context but only provides access to the current application. This
|
||||
also adds support for URL generation without an active request
|
||||
context.
|
||||
- View functions can now return a tuple with the first instance being
|
||||
an instance of :class:`flask.Response`. This allows for returning
|
||||
an instance of ``Response``. This allows for returning
|
||||
``jsonify(error="error msg"), 400`` from a view function.
|
||||
- :class:`~flask.Flask` and :class:`~flask.Blueprint` now provide a
|
||||
:meth:`~flask.Flask.get_send_file_max_age` hook for subclasses to
|
||||
override behavior of serving static files from Flask when using
|
||||
:meth:`flask.Flask.send_static_file` (used for the default static
|
||||
file handler) and :func:`~flask.helpers.send_file`. This hook is
|
||||
- ``Flask`` and ``Blueprint`` now provide a ``get_send_file_max_age``
|
||||
hook for subclasses to override behavior of serving static files
|
||||
from Flask when using ``Flask.send_static_file`` (used for the
|
||||
default static file handler) and ``helpers.send_file``. This hook is
|
||||
provided a filename, which for example allows changing cache
|
||||
controls by file extension. The default max-age for ``send_file``
|
||||
and static files can be configured through a new
|
||||
|
|
@ -973,14 +957,13 @@ Released 2012-07-01, codename Campari
|
|||
- Changed the behavior of tuple return values from functions. They are
|
||||
no longer arguments to the response object, they now have a defined
|
||||
meaning.
|
||||
- Added :attr:`flask.Flask.request_globals_class` to allow a specific
|
||||
class to be used on creation of the :data:`~flask.g` instance of
|
||||
each request.
|
||||
- Added ``Flask.request_globals_class`` to allow a specific class to
|
||||
be used on creation of the ``g`` instance of each request.
|
||||
- Added ``required_methods`` attribute to view functions to force-add
|
||||
methods on registration.
|
||||
- Added :func:`flask.after_this_request`.
|
||||
- Added :func:`flask.stream_with_context` and the ability to push
|
||||
contexts multiple times without producing unexpected behavior.
|
||||
- Added ``flask.after_this_request``.
|
||||
- Added ``flask.stream_with_context`` and the ability to push contexts
|
||||
multiple times without producing unexpected behavior.
|
||||
|
||||
|
||||
Version 0.8.1
|
||||
|
|
@ -1013,8 +996,8 @@ Released 2011-09-29, codename Rakija
|
|||
earlier feedback when users forget to import view code ahead of
|
||||
time.
|
||||
- Added the ability to register callbacks that are only triggered once
|
||||
at the beginning of the first request.
|
||||
(:meth:`Flask.before_first_request`)
|
||||
at the beginning of the first request with
|
||||
``Flask.before_first_request``.
|
||||
- Malformed JSON data will now trigger a bad request HTTP exception
|
||||
instead of a value error which usually would result in a 500
|
||||
internal server error if not handled. This is a backwards
|
||||
|
|
@ -1026,20 +1009,20 @@ Released 2011-09-29, codename Rakija
|
|||
version control so it's the perfect place to put configuration files
|
||||
etc.
|
||||
- Added the ``APPLICATION_ROOT`` configuration variable.
|
||||
- Implemented :meth:`~flask.testing.TestClient.session_transaction` to
|
||||
easily modify sessions from the test environment.
|
||||
- Implemented ``TestClient.session_transaction`` to easily modify
|
||||
sessions from the test environment.
|
||||
- Refactored test client internally. The ``APPLICATION_ROOT``
|
||||
configuration variable as well as ``SERVER_NAME`` are now properly
|
||||
used by the test client as defaults.
|
||||
- Added :attr:`flask.views.View.decorators` to support simpler
|
||||
decorating of pluggable (class-based) views.
|
||||
- Added ``View.decorators`` to support simpler decorating of pluggable
|
||||
(class-based) views.
|
||||
- Fixed an issue where the test client if used with the "with"
|
||||
statement did not trigger the execution of the teardown handlers.
|
||||
- Added finer control over the session cookie parameters.
|
||||
- HEAD requests to a method view now automatically dispatch to the
|
||||
``get`` method if no handler was implemented.
|
||||
- Implemented the virtual :mod:`flask.ext` package to import
|
||||
extensions from.
|
||||
- Implemented the virtual ``flask.ext`` package to import extensions
|
||||
from.
|
||||
- The context preservation on exceptions is now an integral component
|
||||
of Flask itself and no longer of the test client. This cleaned up
|
||||
some internal logic and lowers the odds of runaway request contexts
|
||||
|
|
@ -1072,14 +1055,13 @@ Version 0.7
|
|||
|
||||
Released 2011-06-28, codename Grappa
|
||||
|
||||
- Added :meth:`~flask.Flask.make_default_options_response` which can
|
||||
be used by subclasses to alter the default behavior for ``OPTIONS``
|
||||
responses.
|
||||
- Unbound locals now raise a proper :exc:`RuntimeError` instead of an
|
||||
:exc:`AttributeError`.
|
||||
- Added ``Flask.make_default_options_response`` which can be used by
|
||||
subclasses to alter the default behavior for ``OPTIONS`` responses.
|
||||
- Unbound locals now raise a proper ``RuntimeError`` instead of an
|
||||
``AttributeError``.
|
||||
- Mimetype guessing and etag support based on file objects is now
|
||||
deprecated for :func:`flask.send_file` because it was unreliable.
|
||||
Pass filenames instead or attach your own etags and provide a proper
|
||||
deprecated for ``send_file`` because it was unreliable. Pass
|
||||
filenames instead or attach your own etags and provide a proper
|
||||
mimetype by hand.
|
||||
- Static file handling for modules now requires the name of the static
|
||||
folder to be supplied explicitly. The previous autodetection was not
|
||||
|
|
@ -1105,15 +1087,15 @@ Released 2011-06-28, codename Grappa
|
|||
at the end of a request regardless of whether an exception occurred.
|
||||
Also the behavior for ``after_request`` was changed. It's now no
|
||||
longer executed when an exception is raised.
|
||||
- Implemented :func:`flask.has_request_context`
|
||||
- Implemented ``has_request_context``.
|
||||
- Deprecated ``init_jinja_globals``. Override the
|
||||
:meth:`~flask.Flask.create_jinja_environment` method instead to
|
||||
achieve the same functionality.
|
||||
- Added :func:`flask.safe_join`
|
||||
``Flask.create_jinja_environment`` method instead to achieve the
|
||||
same functionality.
|
||||
- Added ``safe_join``.
|
||||
- The automatic JSON request data unpacking now looks at the charset
|
||||
mimetype parameter.
|
||||
- Don't modify the session on :func:`flask.get_flashed_messages` if
|
||||
there are no messages in the session.
|
||||
- Don't modify the session on ``get_flashed_messages`` if there are no
|
||||
messages in the session.
|
||||
- ``before_request`` handlers are now able to abort requests with
|
||||
errors.
|
||||
- It is not possible to define user exception handlers. That way you
|
||||
|
|
@ -1155,29 +1137,25 @@ Released 2010-07-27, codename Whisky
|
|||
- Static rules are now even in place if there is no static folder for
|
||||
the module. This was implemented to aid GAE which will remove the
|
||||
static folder if it's part of a mapping in the .yml file.
|
||||
- The :attr:`~flask.Flask.config` is now available in the templates as
|
||||
``config``.
|
||||
- ``Flask.config`` is now available in the templates as ``config``.
|
||||
- Context processors will no longer override values passed directly to
|
||||
the render function.
|
||||
- Added the ability to limit the incoming request data with the new
|
||||
``MAX_CONTENT_LENGTH`` configuration value.
|
||||
- The endpoint for the :meth:`flask.Module.add_url_rule` method is now
|
||||
optional to be consistent with the function of the same name on the
|
||||
- The endpoint for the ``Module.add_url_rule`` method is now optional
|
||||
to be consistent with the function of the same name on the
|
||||
application object.
|
||||
- Added a :func:`flask.make_response` function that simplifies
|
||||
creating response object instances in views.
|
||||
- Added a ``make_response`` function that simplifies creating response
|
||||
object instances in views.
|
||||
- Added signalling support based on blinker. This feature is currently
|
||||
optional and supposed to be used by extensions and applications. If
|
||||
you want to use it, make sure to have `blinker`_ installed.
|
||||
you want to use it, make sure to have ``blinker`` installed.
|
||||
- Refactored the way URL adapters are created. This process is now
|
||||
fully customizable with the :meth:`~flask.Flask.create_url_adapter`
|
||||
method.
|
||||
fully customizable with the ``Flask.create_url_adapter`` method.
|
||||
- Modules can now register for a subdomain instead of just an URL
|
||||
prefix. This makes it possible to bind a whole module to a
|
||||
configurable subdomain.
|
||||
|
||||
.. _blinker: https://pypi.org/project/blinker/
|
||||
|
||||
|
||||
Version 0.5.2
|
||||
-------------
|
||||
|
|
@ -1211,8 +1189,8 @@ Released 2010-07-06, codename Calvados
|
|||
templates this behavior can be changed with the ``autoescape`` tag.
|
||||
- Refactored Flask internally. It now consists of more than a single
|
||||
file.
|
||||
- :func:`flask.send_file` now emits etags and has the ability to do
|
||||
conditional responses builtin.
|
||||
- ``send_file`` now emits etags and has the ability to do conditional
|
||||
responses builtin.
|
||||
- (temporarily) dropped support for zipped applications. This was a
|
||||
rarely used feature and led to some confusing behavior.
|
||||
- Added support for per-package template and static-file directories.
|
||||
|
|
@ -1228,9 +1206,8 @@ Released 2010-06-18, codename Rakia
|
|||
|
||||
- Added the ability to register application wide error handlers from
|
||||
modules.
|
||||
- :meth:`~flask.Flask.after_request` handlers are now also invoked if
|
||||
the request dies with an exception and an error handling page kicks
|
||||
in.
|
||||
- ``Flask.after_request`` handlers are now also invoked if the request
|
||||
dies with an exception and an error handling page kicks in.
|
||||
- Test client has not the ability to preserve the request context for
|
||||
a little longer. This can also be used to trigger custom requests
|
||||
that do not pop the request stack for testing.
|
||||
|
|
@ -1245,8 +1222,8 @@ Version 0.3.1
|
|||
|
||||
Released 2010-05-28
|
||||
|
||||
- Fixed a error reporting bug with :meth:`flask.Config.from_envvar`
|
||||
- Removed some unused code from flask
|
||||
- Fixed a error reporting bug with ``Config.from_envvar``.
|
||||
- Removed some unused code.
|
||||
- Release does no longer include development leftover files (.git
|
||||
folder for themes, built documentation in zip and pdf file and some
|
||||
.pyc files)
|
||||
|
|
@ -1258,9 +1235,9 @@ Version 0.3
|
|||
Released 2010-05-28, codename Schnaps
|
||||
|
||||
- Added support for categories for flashed messages.
|
||||
- The application now configures a :class:`logging.Handler` and will
|
||||
log request handling exceptions to that logger when not in debug
|
||||
mode. This makes it possible to receive mails on server errors for
|
||||
- The application now configures a ``logging.Handler`` and will log
|
||||
request handling exceptions to that logger when not in debug mode.
|
||||
This makes it possible to receive mails on server errors for
|
||||
example.
|
||||
- Added support for context binding that does not require the use of
|
||||
the with statement for playing in the console.
|
||||
|
|
@ -1276,14 +1253,13 @@ Released 2010-05-12, codename J?germeister
|
|||
|
||||
- Various bugfixes
|
||||
- Integrated JSON support
|
||||
- Added :func:`~flask.get_template_attribute` helper function.
|
||||
- :meth:`~flask.Flask.add_url_rule` can now also register a view
|
||||
function.
|
||||
- Added ``get_template_attribute`` helper function.
|
||||
- ``Flask.add_url_rule`` can now also register a view function.
|
||||
- Refactored internal request dispatching.
|
||||
- Server listens on 127.0.0.1 by default now to fix issues with
|
||||
chrome.
|
||||
- Added external URL support.
|
||||
- Added support for :func:`~flask.send_file`
|
||||
- Added support for ``send_file``.
|
||||
- Module support and internal request handling refactoring to better
|
||||
support pluggable applications.
|
||||
- Sessions can be set to be permanent now on a per-session basis.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue