mirror of https://github.com/pallets/flask.git
fix changelog indentation
This commit is contained in:
parent
e102e5cb33
commit
16549370fd
300
CHANGES.rst
300
CHANGES.rst
|
@ -9,155 +9,161 @@ Version 1.0
|
||||||
|
|
||||||
unreleased
|
unreleased
|
||||||
|
|
||||||
- **Python 2.6 and 3.3 are no longer supported.** (`pallets/meta#24`_)
|
- **Python 2.6 and 3.3 are no longer supported.** (`pallets/meta#24`_)
|
||||||
- Bump minimum dependency versions to the latest stable versions:
|
- Bump minimum dependency versions to the latest stable versions:
|
||||||
Werkzeug >= 0.14, Jinja >= 2.10, itsdangerous >= 0.24, Click >= 5.1.
|
Werkzeug >= 0.14, Jinja >= 2.10, itsdangerous >= 0.24, Click >= 5.1.
|
||||||
(`#2586`_)
|
(`#2586`_)
|
||||||
- Skip :meth:`app.run <Flask.run>` when a Flask application is run from
|
- Skip :meth:`app.run <Flask.run>` when a Flask application is run
|
||||||
the command line. This avoids some behavior that was confusing to
|
from the command line. This avoids some behavior that was confusing
|
||||||
debug.
|
to debug.
|
||||||
- Change the default for :data:`JSONIFY_PRETTYPRINT_REGULAR` to
|
- Change the default for :data:`JSONIFY_PRETTYPRINT_REGULAR` to
|
||||||
``False``. :func:`~json.jsonify` returns a compact format by default,
|
``False``. :func:`~json.jsonify` returns a compact format by
|
||||||
and an indented format in debug mode. (`#2193`_)
|
default, and an indented format in debug mode. (`#2193`_)
|
||||||
- :meth:`Flask.__init__ <Flask>` accepts the ``host_matching`` argument
|
- :meth:`Flask.__init__ <Flask>` accepts the ``host_matching``
|
||||||
and sets it on :attr:`~Flask.url_map`. (`#1559`_)
|
argument and sets it on :attr:`~Flask.url_map`. (`#1559`_)
|
||||||
- :meth:`Flask.__init__ <Flask>` accepts the ``static_host`` argument
|
- :meth:`Flask.__init__ <Flask>` accepts the ``static_host`` argument
|
||||||
and passes it as the ``host`` argument when defining the static route.
|
and passes it as the ``host`` argument when defining the static
|
||||||
(`#1559`_)
|
route. (`#1559`_)
|
||||||
- :func:`send_file` supports Unicode in ``attachment_filename``.
|
- :func:`send_file` supports Unicode in ``attachment_filename``.
|
||||||
(`#2223`_)
|
(`#2223`_)
|
||||||
- Pass ``_scheme`` argument from :func:`url_for` to
|
- Pass ``_scheme`` argument from :func:`url_for` to
|
||||||
:meth:`~Flask.handle_url_build_error`. (`#2017`_)
|
:meth:`~Flask.handle_url_build_error`. (`#2017`_)
|
||||||
- :meth:`~Flask.add_url_rule` accepts the ``provide_automatic_options``
|
- :meth:`~Flask.add_url_rule` accepts the
|
||||||
argument to disable adding the ``OPTIONS`` method. (`#1489`_)
|
``provide_automatic_options`` argument to disable adding the
|
||||||
- :class:`~views.MethodView` subclasses inherit method handlers from
|
``OPTIONS`` method. (`#1489`_)
|
||||||
base classes. (`#1936`_)
|
- :class:`~views.MethodView` subclasses inherit method handlers from
|
||||||
- Errors caused while opening the session at the beginning of the
|
base classes. (`#1936`_)
|
||||||
request are handled by the app's error handlers. (`#2254`_)
|
- Errors caused while opening the session at the beginning of the
|
||||||
- Blueprints gained :attr:`~Blueprint.json_encoder` and
|
request are handled by the app's error handlers. (`#2254`_)
|
||||||
:attr:`~Blueprint.json_decoder` attributes to override the app's
|
- Blueprints gained :attr:`~Blueprint.json_encoder` and
|
||||||
encoder and decoder. (`#1898`_)
|
:attr:`~Blueprint.json_decoder` attributes to override the app's
|
||||||
- :meth:`Flask.make_response` raises ``TypeError`` instead of
|
encoder and decoder. (`#1898`_)
|
||||||
``ValueError`` for bad response types. The error messages have been
|
- :meth:`Flask.make_response` raises ``TypeError`` instead of
|
||||||
improved to describe why the type is invalid. (`#2256`_)
|
``ValueError`` for bad response types. The error messages have been
|
||||||
- Add ``routes`` CLI command to output routes registered on the
|
improved to describe why the type is invalid. (`#2256`_)
|
||||||
application. (`#2259`_)
|
- Add ``routes`` CLI command to output routes registered on the
|
||||||
- Show warning when session cookie domain is a bare hostname or an IP
|
application. (`#2259`_)
|
||||||
address, as these may not behave properly in some browsers, such as
|
- Show warning when session cookie domain is a bare hostname or an IP
|
||||||
Chrome. (`#2282`_)
|
address, as these may not behave properly in some browsers, such as
|
||||||
- Allow IP address as exact session cookie domain. (`#2282`_)
|
Chrome. (`#2282`_)
|
||||||
- ``SESSION_COOKIE_DOMAIN`` is set if it is detected through
|
- Allow IP address as exact session cookie domain. (`#2282`_)
|
||||||
``SERVER_NAME``. (`#2282`_)
|
- ``SESSION_COOKIE_DOMAIN`` is set if it is detected through
|
||||||
- Auto-detect zero-argument app factory called ``create_app`` or
|
``SERVER_NAME``. (`#2282`_)
|
||||||
``make_app`` from ``FLASK_APP``. (`#2297`_)
|
- Auto-detect zero-argument app factory called ``create_app`` or
|
||||||
- Factory functions are not required to take a ``script_info`` parameter
|
``make_app`` from ``FLASK_APP``. (`#2297`_)
|
||||||
to work with the ``flask`` command. If they take a single parameter or
|
- Factory functions are not required to take a ``script_info``
|
||||||
a parameter named ``script_info``, the :class:`~cli.ScriptInfo` object
|
parameter to work with the ``flask`` command. If they take a single
|
||||||
will be passed. (`#2319`_)
|
parameter or a parameter named ``script_info``, the
|
||||||
- ``FLASK_APP`` can be set to an app factory, with arguments if needed,
|
:class:`~cli.ScriptInfo` object will be passed. (`#2319`_)
|
||||||
for example ``FLASK_APP=myproject.app:create_app('dev')``. (`#2326`_)
|
- ``FLASK_APP`` can be set to an app factory, with arguments if
|
||||||
- ``FLASK_APP`` can point to local packages that are not installed in
|
needed, for example ``FLASK_APP=myproject.app:create_app('dev')``.
|
||||||
editable mode, although ``pip install -e`` is still preferred.
|
(`#2326`_)
|
||||||
(`#2414`_)
|
- ``FLASK_APP`` can point to local packages that are not installed in
|
||||||
- The :class:`~views.View` class attribute
|
editable mode, although ``pip install -e`` is still preferred.
|
||||||
:attr:`~views.View.provide_automatic_options` is set in
|
(`#2414`_)
|
||||||
:meth:`~views.View.as_view`, to be detected by
|
- The :class:`~views.View` class attribute
|
||||||
:meth:`~Flask.add_url_rule`. (`#2316`_)
|
:attr:`~views.View.provide_automatic_options` is set in
|
||||||
- Error handling will try handlers registered for ``blueprint, code``,
|
:meth:`~views.View.as_view`, to be detected by
|
||||||
``app, code``, ``blueprint, exception``, ``app, exception``.
|
:meth:`~Flask.add_url_rule`. (`#2316`_)
|
||||||
(`#2314`_)
|
- Error handling will try handlers registered for ``blueprint, code``,
|
||||||
- ``Cookie`` is added to the response's ``Vary`` header if the session
|
``app, code``, ``blueprint, exception``, ``app, exception``.
|
||||||
is accessed at all during the request (and not deleted). (`#2288`_)
|
(`#2314`_)
|
||||||
- :meth:`~Flask.test_request_context` accepts ``subdomain`` and
|
- ``Cookie`` is added to the response's ``Vary`` header if the session
|
||||||
``url_scheme`` arguments for use when building the base URL.
|
is accessed at all during the request (and not deleted). (`#2288`_)
|
||||||
(`#1621`_)
|
- :meth:`~Flask.test_request_context` accepts ``subdomain`` and
|
||||||
- Set :data:`APPLICATION_ROOT` to ``'/'`` by default. This was already
|
``url_scheme`` arguments for use when building the base URL.
|
||||||
the implicit default when it was set to ``None``.
|
(`#1621`_)
|
||||||
- :data:`TRAP_BAD_REQUEST_ERRORS` is enabled by default in debug mode.
|
- Set :data:`APPLICATION_ROOT` to ``'/'`` by default. This was already
|
||||||
``BadRequestKeyError`` has a message with the bad key in debug mode
|
the implicit default when it was set to ``None``.
|
||||||
instead of the generic bad request message. (`#2348`_)
|
- :data:`TRAP_BAD_REQUEST_ERRORS` is enabled by default in debug mode.
|
||||||
- Allow registering new tags with
|
``BadRequestKeyError`` has a message with the bad key in debug mode
|
||||||
:class:`~json.tag.TaggedJSONSerializer` to support storing other types
|
instead of the generic bad request message. (`#2348`_)
|
||||||
in the session cookie. (`#2352`_)
|
- Allow registering new tags with
|
||||||
- Only open the session if the request has not been pushed onto the
|
:class:`~json.tag.TaggedJSONSerializer` to support storing other
|
||||||
context stack yet. This allows :func:`~stream_with_context`
|
types in the session cookie. (`#2352`_)
|
||||||
generators to access the same session that the containing view uses.
|
- Only open the session if the request has not been pushed onto the
|
||||||
(`#2354`_)
|
context stack yet. This allows :func:`~stream_with_context`
|
||||||
- Add ``json`` keyword argument for the test client request methods.
|
generators to access the same session that the containing view uses.
|
||||||
This will dump the given object as JSON and set the appropriate
|
(`#2354`_)
|
||||||
content type. (`#2358`_)
|
- Add ``json`` keyword argument for the test client request methods.
|
||||||
- Extract JSON handling to a mixin applied to both the :class:`Request`
|
This will dump the given object as JSON and set the appropriate
|
||||||
and :class:`Response` classes. This adds the :meth:`~Response.is_json`
|
content type. (`#2358`_)
|
||||||
and :meth:`~Response.get_json` methods to the response to make testing
|
- Extract JSON handling to a mixin applied to both the
|
||||||
JSON response much easier. (`#2358`_)
|
:class:`Request` and :class:`Response` classes. This adds the
|
||||||
- Removed error handler caching because it caused unexpected results for
|
:meth:`~Response.is_json` and :meth:`~Response.get_json` methods to
|
||||||
some exception inheritance hierarchies. Register handlers explicitly
|
the response to make testing JSON response much easier. (`#2358`_)
|
||||||
for each exception if you want to avoid traversing the MRO. (`#2362`_)
|
- Removed error handler caching because it caused unexpected results
|
||||||
- Fix incorrect JSON encoding of aware, non-UTC datetimes. (`#2374`_)
|
for some exception inheritance hierarchies. Register handlers
|
||||||
- Template auto reloading will honor debug mode even even if
|
explicitly for each exception if you want to avoid traversing the
|
||||||
:attr:`~Flask.jinja_env` was already accessed. (`#2373`_)
|
MRO. (`#2362`_)
|
||||||
- The following old deprecated code was removed. (`#2385`_)
|
- Fix incorrect JSON encoding of aware, non-UTC datetimes. (`#2374`_)
|
||||||
|
- Template auto reloading will honor debug mode even even if
|
||||||
|
:attr:`~Flask.jinja_env` was already accessed. (`#2373`_)
|
||||||
|
- The following old deprecated code was removed. (`#2385`_)
|
||||||
|
|
||||||
- ``flask.ext`` - import extensions directly by their name instead of
|
- ``flask.ext`` - import extensions directly by their name instead
|
||||||
through the ``flask.ext`` namespace. For example,
|
of through the ``flask.ext`` namespace. For example,
|
||||||
``import flask.ext.sqlalchemy`` becomes ``import flask_sqlalchemy``.
|
``import flask.ext.sqlalchemy`` becomes
|
||||||
- ``Flask.init_jinja_globals`` - extend
|
``import flask_sqlalchemy``.
|
||||||
:meth:`Flask.create_jinja_environment` instead.
|
- ``Flask.init_jinja_globals`` - extend
|
||||||
- ``Flask.error_handlers`` - tracked by
|
:meth:`Flask.create_jinja_environment` instead.
|
||||||
:attr:`Flask.error_handler_spec`, use :meth:`Flask.errorhandler` to
|
- ``Flask.error_handlers`` - tracked by
|
||||||
register handlers.
|
:attr:`Flask.error_handler_spec`, use :meth:`Flask.errorhandler`
|
||||||
- ``Flask.request_globals_class`` - use
|
to register handlers.
|
||||||
:attr:`Flask.app_ctx_globals_class` instead.
|
- ``Flask.request_globals_class`` - use
|
||||||
- ``Flask.static_path`` - use :attr:`Flask.static_url_path` instead.
|
:attr:`Flask.app_ctx_globals_class` instead.
|
||||||
- ``Request.module`` - use :attr:`Request.blueprint` instead.
|
- ``Flask.static_path`` - use :attr:`Flask.static_url_path`
|
||||||
|
instead.
|
||||||
|
- ``Request.module`` - use :attr:`Request.blueprint` instead.
|
||||||
|
|
||||||
- The :attr:`Request.json` property is no longer deprecated. (`#1421`_)
|
- The :attr:`Request.json` property is no longer deprecated.
|
||||||
- Support passing a :class:`~werkzeug.test.EnvironBuilder` or
|
(`#1421`_)
|
||||||
``dict`` to :meth:`test_client.open <werkzeug.test.Client.open>`.
|
- Support passing a :class:`~werkzeug.test.EnvironBuilder` or
|
||||||
(`#2412`_)
|
``dict`` to :meth:`test_client.open <werkzeug.test.Client.open>`.
|
||||||
- The ``flask`` command and :meth:`Flask.run` will load environment
|
(`#2412`_)
|
||||||
variables from ``.env`` and ``.flaskenv`` files if python-dotenv is
|
- The ``flask`` command and :meth:`Flask.run` will load environment
|
||||||
installed. (`#2416`_)
|
variables from ``.env`` and ``.flaskenv`` files if python-dotenv is
|
||||||
- When passing a full URL to the test client, the scheme in the URL is
|
installed. (`#2416`_)
|
||||||
used instead of :data:`PREFERRED_URL_SCHEME`. (`#2430`_)
|
- When passing a full URL to the test client, the scheme in the URL is
|
||||||
- :attr:`Flask.logger` has been simplified. ``LOGGER_NAME`` and
|
used instead of :data:`PREFERRED_URL_SCHEME`. (`#2430`_)
|
||||||
``LOGGER_HANDLER_POLICY`` config was removed. The logger is always
|
- :attr:`Flask.logger` has been simplified. ``LOGGER_NAME`` and
|
||||||
named ``flask.app``. The level is only set on first access, it doesn't
|
``LOGGER_HANDLER_POLICY`` config was removed. The logger is always
|
||||||
check :attr:`Flask.debug` each time. Only one format is used, not
|
named ``flask.app``. The level is only set on first access, it
|
||||||
different ones depending on :attr:`Flask.debug`. No handlers are
|
doesn't check :attr:`Flask.debug` each time. Only one format is
|
||||||
removed, and a handler is only added if no handlers are already
|
used, not different ones depending on :attr:`Flask.debug`. No
|
||||||
configured. (`#2436`_)
|
handlers are removed, and a handler is only added if no handlers are
|
||||||
- Blueprint view function names may not contain dots. (`#2450`_)
|
already configured. (`#2436`_)
|
||||||
- Fix a ``ValueError`` caused by invalid ``Range`` requests in some
|
- Blueprint view function names may not contain dots. (`#2450`_)
|
||||||
cases. (`#2526`_)
|
- Fix a ``ValueError`` caused by invalid ``Range`` requests in some
|
||||||
- The development server uses threads by default. (`#2529`_)
|
cases. (`#2526`_)
|
||||||
- Loading config files with ``silent=True`` will ignore
|
- The development server uses threads by default. (`#2529`_)
|
||||||
:data:`~errno.ENOTDIR` errors. (`#2581`_)
|
- Loading config files with ``silent=True`` will ignore
|
||||||
- Pass ``--cert`` and ``--key`` options to ``flask run`` to run the
|
:data:`~errno.ENOTDIR` errors. (`#2581`_)
|
||||||
development server over HTTPS. (`#2606`_)
|
- Pass ``--cert`` and ``--key`` options to ``flask run`` to run the
|
||||||
- Added :data:`SESSION_COOKIE_SAMESITE` to control the ``SameSite``
|
development server over HTTPS. (`#2606`_)
|
||||||
attribute on the session cookie. (`#2607`_)
|
- Added :data:`SESSION_COOKIE_SAMESITE` to control the ``SameSite``
|
||||||
- Added :meth:`~flask.Flask.test_cli_runner` to create a Click runner
|
attribute on the session cookie. (`#2607`_)
|
||||||
that can invoke Flask CLI commands for testing. (`#2636`_)
|
- Added :meth:`~flask.Flask.test_cli_runner` to create a Click runner
|
||||||
- Subdomain matching is disabled by default and setting
|
that can invoke Flask CLI commands for testing. (`#2636`_)
|
||||||
:data:`SERVER_NAME` does not implicily enable it. It can be enabled by
|
- Subdomain matching is disabled by default and setting
|
||||||
passing ``subdomain_matching=True`` to the ``Flask`` constructor.
|
:data:`SERVER_NAME` does not implicily enable it. It can be enabled
|
||||||
(`#2635`_)
|
by passing ``subdomain_matching=True`` to the ``Flask`` constructor.
|
||||||
- A single trailing slash is stripped from the blueprint ``url_prefix``
|
(`#2635`_)
|
||||||
when it is registered with the app. (`#2629`_)
|
- A single trailing slash is stripped from the blueprint
|
||||||
- :meth:`Request.get_json` doesn't cache the
|
``url_prefix`` when it is registered with the app. (`#2629`_)
|
||||||
result if parsing fails when ``silent`` is true. (`#2651`_)
|
- :meth:`Request.get_json` doesn't cache the
|
||||||
- :func:`Request.get_json` no longer accepts arbitrary encodings.
|
result if parsing fails when ``silent`` is true. (`#2651`_)
|
||||||
Incoming JSON should be encoded using UTF-8 per :rfc:`8259`, but Flask
|
- :func:`Request.get_json` no longer accepts arbitrary encodings.
|
||||||
will autodetect UTF-8, -16, or -32. (`#2691`_)
|
Incoming JSON should be encoded using UTF-8 per :rfc:`8259`, but
|
||||||
- Added :data:`MAX_COOKIE_SIZE` and :attr:`Response.max_cookie_size` to
|
Flask will autodetect UTF-8, -16, or -32. (`#2691`_)
|
||||||
control when Werkzeug warns about large cookies that browsers may
|
- Added :data:`MAX_COOKIE_SIZE` and :attr:`Response.max_cookie_size`
|
||||||
ignore. (`#2693`_)
|
to control when Werkzeug warns about large cookies that browsers may
|
||||||
- Updated documentation theme to make docs look better in small
|
ignore. (`#2693`_)
|
||||||
windows. (`#2709`_)
|
- Updated documentation theme to make docs look better in small
|
||||||
- Rewrote the tutorial docs and example project to take a more
|
windows. (`#2709`_)
|
||||||
structured approach to help new users avoid common pitfalls.
|
- Rewrote the tutorial docs and example project to take a more
|
||||||
(`#2676`_)
|
structured approach to help new users avoid common pitfalls.
|
||||||
|
(`#2676`_)
|
||||||
|
|
||||||
.. _pallets/meta#24: https://github.com/pallets/meta/issues/24
|
.. _pallets/meta#24: https://github.com/pallets/meta/issues/24
|
||||||
.. _#1421: https://github.com/pallets/flask/issues/1421
|
.. _#1421: https://github.com/pallets/flask/issues/1421
|
||||||
|
|
Loading…
Reference in New Issue