diff --git a/CHANGES.rst b/CHANGES.rst index 153e964b..3b841e1a 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -5,13 +5,14 @@ Version 2.2.0 Unreleased -- Add ``aborter_class`` and ``aborter`` attributes to the Flask app - object. ``flask.abort`` will call ``app.aborter``. This makes it - possible for an app to override how aborts work, including custom - status codes. :issue:`4567` -- Add an ``app.redirect`` method, which ``flask.redirect`` will call. - This makes it possible for an app to override how redirects work. - :issue:`4569` +- Add new customization points to the ``Flask`` app object for many + previously global behaviors. + + - ``flask.abort`` will call ``app.aborter``. + ``Flask.aborter_class`` and ``Flask.make_aborter`` can be used + to customize this aborter. :issue:`4567` + - ``flask.redirect`` will call ``app.redirect``. :issue:`4569` + - Refactor ``register_error_handler`` to consolidate error checking. Rewrite some error messages to be more consistent. :issue:`4559` diff --git a/src/flask/app.py b/src/flask/app.py index 219cde24..ad859b27 100644 --- a/src/flask/app.py +++ b/src/flask/app.py @@ -1664,8 +1664,11 @@ class Flask(Scaffold): def redirect(self, location: str, code: int = 302) -> BaseResponse: """Create a redirect response object. - :param location: the url of the redirect - :param code: http return code + This is called by :func:`flask.redirect`, and can be called + directly as well. + + :param location: The URL to redirect to. + :param code: The status code for the redirect. .. versionadded:: 2.2 """ diff --git a/src/flask/helpers.py b/src/flask/helpers.py index 070a4daf..dec9b771 100644 --- a/src/flask/helpers.py +++ b/src/flask/helpers.py @@ -349,8 +349,8 @@ def redirect( ) -> "BaseResponse": """Create a redirect response object. - If :data:`~flask.current_app` is available, it will use - :meth:`~flask.app.Flask.redirect`, otherwise it will use + If :data:`~flask.current_app` is available, it will use its + :meth:`~flask.Flask.redirect` method, otherwise it will use :func:`werkzeug.utils.redirect`. :param location: The URL to redirect to. @@ -359,6 +359,8 @@ def redirect( ``current_app`` is active, which uses ``app.response_class``. .. versionadded:: 2.2 + Calls ``current_app.redirect`` if available instead of always + using Werkzeug's default ``redirect``. """ if current_app: return current_app.redirect(location, code=code)