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