| 
									
										
										
										
											2022-03-29 03:17:25 +08:00
										 |  |  | Version 2.2.0
 | 
					
						
							|  |  |  | -------------
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Unreleased
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-07-02 04:44:31 +08:00
										 |  |  | -   Remove previously deprecated code. :pr:`4337`
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-07-02 04:59:44 +08:00
										 |  |  |     -   Old names for some ``send_file`` parameters have been removed.
 | 
					
						
							|  |  |  |         ``download_name`` replaces ``attachment_filename``, ``max_age``
 | 
					
						
							|  |  |  |         replaces ``cache_timeout``, and ``etag`` replaces ``add_etags``.
 | 
					
						
							|  |  |  |         Additionally, ``path`` replaces ``filename`` in
 | 
					
						
							|  |  |  |         ``send_from_directory``.
 | 
					
						
							|  |  |  |     -   The ``RequestContext.g`` property returning ``AppContext.g`` is
 | 
					
						
							|  |  |  |         removed.
 | 
					
						
							| 
									
										
										
										
											2022-07-02 04:44:31 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-07-25 09:40:52 +08:00
										 |  |  | -   Update Werkzeug dependency to >= 2.2.
 | 
					
						
							| 
									
										
										
										
											2022-07-05 13:50:51 +08:00
										 |  |  | -   The app and request contexts are managed using Python context vars
 | 
					
						
							|  |  |  |     directly rather than Werkzeug's ``LocalStack``. This should result
 | 
					
						
							| 
									
										
										
										
											2022-07-09 03:02:18 +08:00
										 |  |  |     in better performance and memory use. :pr:`4682`
 | 
					
						
							| 
									
										
										
										
											2022-07-05 13:50:51 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |     -   Extension maintainers, be aware that ``_app_ctx_stack.top``
 | 
					
						
							|  |  |  |         and ``_request_ctx_stack.top`` are deprecated. Store data on
 | 
					
						
							|  |  |  |         ``g`` instead using a unique prefix, like
 | 
					
						
							|  |  |  |         ``g._extension_name_attr``.
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-08-02 06:11:21 +08:00
										 |  |  | -   The ``FLASK_ENV`` environment variable and ``app.env`` attribute are
 | 
					
						
							|  |  |  |     deprecated, removing the distinction between development and debug
 | 
					
						
							|  |  |  |     mode. Debug mode should be controlled directly using the ``--debug``
 | 
					
						
							|  |  |  |     option or ``app.run(debug=True)``. :issue:`4714`
 | 
					
						
							| 
									
										
										
										
											2022-05-13 07:30:01 +08:00
										 |  |  | -   Add new customization points to the ``Flask`` app object for many
 | 
					
						
							|  |  |  |     previously global behaviors.
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-05-15 23:48:07 +08:00
										 |  |  |     -   ``flask.url_for`` will call ``app.url_for``. :issue:`4568`
 | 
					
						
							| 
									
										
										
										
											2022-05-13 07:30:01 +08:00
										 |  |  |     -   ``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`
 | 
					
						
							| 
									
										
										
										
											2022-07-13 22:41:43 +08:00
										 |  |  |     -   ``flask.json`` is an instance of ``JSONProvider``. A different
 | 
					
						
							|  |  |  |         provider can be set to use a different JSON library.
 | 
					
						
							|  |  |  |         ``flask.jsonify`` will call ``app.json.response``, other
 | 
					
						
							|  |  |  |         functions in ``flask.json`` will call corresponding functions in
 | 
					
						
							|  |  |  |         ``app.json``. :pr:`4688`
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | -   JSON configuration is moved to attributes on the default
 | 
					
						
							|  |  |  |     ``app.json`` provider. ``JSON_AS_ASCII``, ``JSON_SORT_KEYS``,
 | 
					
						
							|  |  |  |     ``JSONIFY_MIMETYPE``, and ``JSONIFY_PRETTYPRINT_REGULAR`` are
 | 
					
						
							|  |  |  |     deprecated. :pr:`4688`
 | 
					
						
							|  |  |  | -   Setting custom ``json_encoder`` and ``json_decoder`` classes on the
 | 
					
						
							|  |  |  |     app or a blueprint, and the corresponding ``json.JSONEncoder`` and
 | 
					
						
							|  |  |  |     ``JSONDecoder`` classes, are deprecated. JSON behavior can now be
 | 
					
						
							|  |  |  |     overridden using the ``app.json`` provider interface. :pr:`4688`
 | 
					
						
							|  |  |  | -   ``json.htmlsafe_dumps`` and ``json.htmlsafe_dump`` are deprecated,
 | 
					
						
							|  |  |  |     the function is built-in to Jinja now. :pr:`4688`
 | 
					
						
							| 
									
										
										
										
											2022-04-29 01:49:23 +08:00
										 |  |  | -   Refactor ``register_error_handler`` to consolidate error checking.
 | 
					
						
							|  |  |  |     Rewrite some error messages to be more consistent. :issue:`4559`
 | 
					
						
							| 
									
										
										
										
											2022-05-03 01:33:29 +08:00
										 |  |  | -   Use Blueprint decorators and functions intended for setup after
 | 
					
						
							|  |  |  |     registering the blueprint will show a warning. In the next version,
 | 
					
						
							|  |  |  |     this will become an error just like the application setup methods.
 | 
					
						
							|  |  |  |     :issue:`4571`
 | 
					
						
							| 
									
										
										
										
											2022-06-07 01:00:21 +08:00
										 |  |  | -   ``before_first_request`` is deprecated. Run setup code when creating
 | 
					
						
							|  |  |  |     the application instead. :issue:`4605`
 | 
					
						
							| 
									
										
										
										
											2022-06-07 02:04:04 +08:00
										 |  |  | -   Added the ``View.init_every_request`` class attribute. If a view
 | 
					
						
							|  |  |  |     subclass sets this to ``False``, the view will not create a new
 | 
					
						
							|  |  |  |     instance on every request. :issue:`2520`.
 | 
					
						
							| 
									
										
										
										
											2022-06-16 05:07:00 +08:00
										 |  |  | -   A ``flask.cli.FlaskGroup`` Click group can be nested as a
 | 
					
						
							|  |  |  |     sub-command in a custom CLI. :issue:`3263`
 | 
					
						
							| 
									
										
										
										
											2022-08-02 06:11:21 +08:00
										 |  |  | -   Add ``--app`` and ``--debug`` options to the ``flask`` CLI, instead
 | 
					
						
							|  |  |  |     of requiring that they are set through environment variables.
 | 
					
						
							|  |  |  |     :issue:`2836`
 | 
					
						
							| 
									
										
										
										
											2022-06-17 22:54:06 +08:00
										 |  |  | -   Add ``--env-file`` option to the ``flask`` CLI. This allows
 | 
					
						
							|  |  |  |     specifying a dotenv file to load in addition to ``.env`` and
 | 
					
						
							|  |  |  |     ``.flaskenv``. :issue:`3108`
 | 
					
						
							| 
									
										
										
										
											2022-06-18 02:14:22 +08:00
										 |  |  | -   It is no longer required to decorate custom CLI commands on
 | 
					
						
							|  |  |  |     ``app.cli`` or ``blueprint.cli`` with ``@with_appcontext``, an app
 | 
					
						
							|  |  |  |     context will already be active at that point. :issue:`2410`
 | 
					
						
							| 
									
										
										
										
											2022-06-17 22:38:17 +08:00
										 |  |  | -   ``SessionInterface.get_expiration_time`` uses a timezone-aware
 | 
					
						
							|  |  |  |     value. :pr:`4645`
 | 
					
						
							| 
									
										
										
										
											2022-06-09 16:30:21 +08:00
										 |  |  | -   View functions can return generators directly instead of wrapping
 | 
					
						
							|  |  |  |     them in a ``Response``. :pr:`4629`
 | 
					
						
							| 
									
										
										
										
											2022-06-09 16:21:48 +08:00
										 |  |  | -   Add ``stream_template`` and ``stream_template_string`` functions to
 | 
					
						
							|  |  |  |     render a template as a stream of pieces. :pr:`4629`
 | 
					
						
							| 
									
										
										
										
											2022-06-30 12:02:44 +08:00
										 |  |  | -   A new implementation of context preservation during debugging and
 | 
					
						
							|  |  |  |     testing. :pr:`4666`
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     -   ``request``, ``g``, and other context-locals point to the
 | 
					
						
							|  |  |  |         correct data when running code in the interactive debugger
 | 
					
						
							|  |  |  |         console. :issue:`2836`
 | 
					
						
							|  |  |  |     -   Teardown functions are always run at the end of the request,
 | 
					
						
							|  |  |  |         even if the context is preserved. They are also run after the
 | 
					
						
							|  |  |  |         preserved context is popped.
 | 
					
						
							|  |  |  |     -   ``stream_with_context`` preserves context separately from a
 | 
					
						
							|  |  |  |         ``with client`` block. It will be cleaned up when
 | 
					
						
							|  |  |  |         ``response.get_data()`` or ``response.close()`` is called.
 | 
					
						
							| 
									
										
										
										
											2022-06-16 05:07:00 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-07-03 12:32:55 +08:00
										 |  |  | -   Allow returning a list from a view function, to convert it to a
 | 
					
						
							|  |  |  |     JSON response like a dict is. :issue:`4672`
 | 
					
						
							| 
									
										
										
										
											2022-07-14 17:22:22 +08:00
										 |  |  | -   When type checking, allow ``TypedDict`` to be returned from view
 | 
					
						
							|  |  |  |     functions. :pr:`4695`
 | 
					
						
							| 
									
										
										
										
											2022-08-02 00:13:01 +08:00
										 |  |  | -   Remove the ``--eager-loading/--lazy-loading`` options from the
 | 
					
						
							|  |  |  |     ``flask run`` command. The app is always eager loaded the first
 | 
					
						
							|  |  |  |     time, then lazily loaded in the reloader. The reloader always prints
 | 
					
						
							|  |  |  |     errors immediately but continues serving. Remove the internal
 | 
					
						
							|  |  |  |     ``DispatchingApp`` middleware used by the previous implementation.
 | 
					
						
							|  |  |  |     :issue:`4715`
 | 
					
						
							| 
									
										
										
										
											2022-07-03 12:32:55 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-03-29 03:17:25 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-05-24 01:54:02 +08:00
										 |  |  | Version 2.1.3
 | 
					
						
							|  |  |  | -------------
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-07-14 04:51:42 +08:00
										 |  |  | Released 2022-07-13
 | 
					
						
							| 
									
										
										
										
											2022-05-24 01:54:02 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | -   Inline some optional imports that are only used for certain CLI
 | 
					
						
							|  |  |  |     commands. :pr:`4606`
 | 
					
						
							| 
									
										
										
										
											2022-05-20 01:34:46 +08:00
										 |  |  | -   Relax type annotation for ``after_request`` functions. :issue:`4600`
 | 
					
						
							| 
									
										
										
										
											2022-05-27 03:12:36 +08:00
										 |  |  | -   ``instance_path`` for namespace packages uses the path closest to
 | 
					
						
							| 
									
										
										
										
											2022-07-14 05:02:50 +08:00
										 |  |  |     the imported submodule. :issue:`4610`
 | 
					
						
							| 
									
										
										
										
											2022-07-14 03:48:28 +08:00
										 |  |  | -   Clearer error message when ``render_template`` and
 | 
					
						
							|  |  |  |     ``render_template_string`` are used outside an application context.
 | 
					
						
							|  |  |  |     :pr:`4693`
 | 
					
						
							| 
									
										
										
										
											2022-05-24 01:54:02 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-04-25 00:50:55 +08:00
										 |  |  | Version 2.1.2
 | 
					
						
							|  |  |  | -------------
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-04-29 01:44:02 +08:00
										 |  |  | Released 2022-04-28
 | 
					
						
							| 
									
										
										
										
											2022-04-25 00:50:55 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-04-13 00:17:24 +08:00
										 |  |  | -   Fix type annotation for ``json.loads``, it accepts str or bytes.
 | 
					
						
							|  |  |  |     :issue:`4519`
 | 
					
						
							| 
									
										
										
										
											2022-04-18 20:52:01 +08:00
										 |  |  | -   The ``--cert`` and ``--key`` options on ``flask run`` can be given
 | 
					
						
							|  |  |  |     in either order. :issue:`4459`
 | 
					
						
							| 
									
										
										
										
											2022-04-13 00:17:24 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-04-25 00:50:55 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-03-31 05:01:10 +08:00
										 |  |  | Version 2.1.1
 | 
					
						
							|  |  |  | -------------
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-03-31 05:28:18 +08:00
										 |  |  | Released on 2022-03-30
 | 
					
						
							| 
									
										
										
										
											2022-03-31 05:01:10 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-03-31 05:10:12 +08:00
										 |  |  | -   Set the minimum required version of importlib_metadata to 3.6.0,
 | 
					
						
							|  |  |  |     which is required on Python < 3.10. :issue:`4502`
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-03-31 05:01:10 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-05-12 05:48:48 +08:00
										 |  |  | Version 2.1.0
 | 
					
						
							|  |  |  | -------------
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-03-29 02:05:58 +08:00
										 |  |  | Released 2022-03-28
 | 
					
						
							| 
									
										
										
										
											2021-05-12 05:48:48 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-11-12 22:46:54 +08:00
										 |  |  | -   Drop support for Python 3.6. :pr:`4335`
 | 
					
						
							|  |  |  | -   Update Click dependency to >= 8.0. :pr:`4008`
 | 
					
						
							|  |  |  | -   Remove previously deprecated code. :pr:`4337`
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     -   The CLI does not pass ``script_info`` to app factory functions.
 | 
					
						
							| 
									
										
										
										
											2021-11-12 22:50:57 +08:00
										 |  |  |     -   ``config.from_json`` is replaced by
 | 
					
						
							|  |  |  |         ``config.from_file(name, load=json.load)``.
 | 
					
						
							| 
									
										
										
										
											2021-11-12 22:59:08 +08:00
										 |  |  |     -   ``json`` functions no longer take an ``encoding`` parameter.
 | 
					
						
							| 
									
										
										
										
											2021-11-13 01:24:32 +08:00
										 |  |  |     -   ``safe_join`` is removed, use ``werkzeug.utils.safe_join``
 | 
					
						
							|  |  |  |         instead.
 | 
					
						
							| 
									
										
										
										
											2021-11-13 01:25:27 +08:00
										 |  |  |     -   ``total_seconds`` is removed, use ``timedelta.total_seconds``
 | 
					
						
							|  |  |  |         instead.
 | 
					
						
							| 
									
										
										
										
											2021-11-13 01:37:13 +08:00
										 |  |  |     -   The same blueprint cannot be registered with the same name. Use
 | 
					
						
							|  |  |  |         ``name=`` when registering to specify a unique name.
 | 
					
						
							| 
									
										
										
										
											2022-01-15 01:34:07 +08:00
										 |  |  |     -   The test client's ``as_tuple`` parameter is removed. Use
 | 
					
						
							|  |  |  |         ``response.request.environ`` instead. :pr:`4417`
 | 
					
						
							| 
									
										
										
										
											2021-05-12 05:50:16 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-11-13 01:21:09 +08:00
										 |  |  | -   Some parameters in ``send_file`` and ``send_from_directory`` were
 | 
					
						
							|  |  |  |     renamed in 2.0. The deprecation period for the old names is extended
 | 
					
						
							|  |  |  |     to 2.2. Be sure to test with deprecation warnings visible.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     -   ``attachment_filename`` is renamed to ``download_name``.
 | 
					
						
							|  |  |  |     -   ``cache_timeout`` is renamed to ``max_age``.
 | 
					
						
							|  |  |  |     -   ``add_etags`` is renamed to ``etag``.
 | 
					
						
							|  |  |  |     -   ``filename`` is renamed to ``path``.
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-11-16 23:35:02 +08:00
										 |  |  | -   The ``RequestContext.g`` property is deprecated. Use ``g`` directly
 | 
					
						
							|  |  |  |     or ``AppContext.g`` instead. :issue:`3898`
 | 
					
						
							| 
									
										
										
										
											2021-10-16 18:05:56 +08:00
										 |  |  | -   ``copy_current_request_context`` can decorate async functions.
 | 
					
						
							|  |  |  |     :pr:`4303`
 | 
					
						
							| 
									
										
										
										
											2022-02-09 02:26:21 +08:00
										 |  |  | -   The CLI uses ``importlib.metadata`` instead of ``setuptools`` to
 | 
					
						
							|  |  |  |     load command entry points. :issue:`4419`
 | 
					
						
							| 
									
										
										
										
											2022-02-10 03:13:03 +08:00
										 |  |  | -   Overriding ``FlaskClient.open`` will not cause an error on redirect.
 | 
					
						
							|  |  |  |     :issue:`3396`
 | 
					
						
							| 
									
										
										
										
											2021-07-06 19:32:45 +08:00
										 |  |  | -   Add an ``--exclude-patterns`` option to the ``flask run`` CLI
 | 
					
						
							|  |  |  |     command to specify patterns that will be ignored by the reloader.
 | 
					
						
							|  |  |  |     :issue:`4188`
 | 
					
						
							| 
									
										
										
										
											2022-02-23 11:04:03 +08:00
										 |  |  | -   When using lazy loading (the default with the debugger), the Click
 | 
					
						
							|  |  |  |     context from the ``flask run`` command remains available in the
 | 
					
						
							|  |  |  |     loader thread. :issue:`4460`
 | 
					
						
							| 
									
										
										
										
											2022-03-15 17:22:38 +08:00
										 |  |  | -   Deleting the session cookie uses the ``httponly`` flag.
 | 
					
						
							|  |  |  |     :issue:`4485`
 | 
					
						
							| 
									
										
										
										
											2022-03-15 22:35:59 +08:00
										 |  |  | -   Relax typing for ``errorhandler`` to allow the user to use more
 | 
					
						
							|  |  |  |     precise types and decorate the same function multiple times.
 | 
					
						
							|  |  |  |     :issue:`4095, 4295, 4297`
 | 
					
						
							| 
									
										
										
										
											2022-03-15 23:44:09 +08:00
										 |  |  | -   Fix typing for ``__exit__`` methods for better compatibility with
 | 
					
						
							|  |  |  |     ``ExitStack``. :issue:`4474`
 | 
					
						
							| 
									
										
										
										
											2022-03-26 02:48:26 +08:00
										 |  |  | -   From Werkzeug, for redirect responses the ``Location`` header URL
 | 
					
						
							|  |  |  |     will remain relative, and exclude the scheme and domain, by default.
 | 
					
						
							|  |  |  |     :pr:`4496`
 | 
					
						
							| 
									
										
										
										
											2022-03-26 02:00:32 +08:00
										 |  |  | -   Add ``Config.from_prefixed_env()`` to load config values from
 | 
					
						
							|  |  |  |     environment variables that start with ``FLASK_`` or another prefix.
 | 
					
						
							|  |  |  |     This parses values as JSON by default, and allows setting keys in
 | 
					
						
							|  |  |  |     nested dicts. :pr:`4479`
 | 
					
						
							| 
									
										
										
										
											2021-10-16 18:05:56 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-05-12 05:48:48 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-11-16 05:08:45 +08:00
										 |  |  | Version 2.0.3
 | 
					
						
							|  |  |  | -------------
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-02-15 03:34:37 +08:00
										 |  |  | Released 2022-02-14
 | 
					
						
							| 
									
										
										
										
											2021-11-16 05:08:45 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | -   The test client's ``as_tuple`` parameter is deprecated and will be
 | 
					
						
							|  |  |  |     removed in Werkzeug 2.1. It is now also deprecated in Flask, to be
 | 
					
						
							|  |  |  |     removed in Flask 2.1, while remaining compatible with both in
 | 
					
						
							|  |  |  |     2.0.x. Use ``response.request.environ`` instead. :pr:`4341`
 | 
					
						
							| 
									
										
										
										
											2021-10-07 07:09:32 +08:00
										 |  |  | -   Fix type annotation for ``errorhandler`` decorator. :issue:`4295`
 | 
					
						
							| 
									
										
										
										
											2021-10-26 02:18:48 +08:00
										 |  |  | -   Revert a change to the CLI that caused it to hide ``ImportError``
 | 
					
						
							|  |  |  |     tracebacks when importing the application. :issue:`4307`
 | 
					
						
							| 
									
										
										
										
											2021-11-20 22:05:57 +08:00
										 |  |  | -   ``app.json_encoder`` and ``json_decoder`` are only passed to
 | 
					
						
							|  |  |  |     ``dumps`` and ``loads`` if they have custom behavior. This improves
 | 
					
						
							|  |  |  |     performance, mainly on PyPy. :issue:`4349`
 | 
					
						
							| 
									
										
										
										
											2021-12-23 09:44:37 +08:00
										 |  |  | -   Clearer error message when ``after_this_request`` is used outside a
 | 
					
						
							| 
									
										
										
										
											2021-11-20 04:09:38 +08:00
										 |  |  |     request context. :issue:`4333`
 | 
					
						
							| 
									
										
										
										
											2021-11-16 05:08:45 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-05-21 23:55:31 +08:00
										 |  |  | Version 2.0.2
 | 
					
						
							| 
									
										
										
										
											2021-05-12 05:48:08 +08:00
										 |  |  | -------------
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-10-04 22:26:47 +08:00
										 |  |  | Released 2021-10-04
 | 
					
						
							| 
									
										
										
										
											2021-05-12 05:48:08 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-06-06 18:09:03 +08:00
										 |  |  | -   Fix type annotation for ``teardown_*`` methods. :issue:`4093`
 | 
					
						
							| 
									
										
										
										
											2021-05-25 23:04:41 +08:00
										 |  |  | -   Fix type annotation for ``before_request`` and ``before_app_request``
 | 
					
						
							|  |  |  |     decorators. :issue:`4104`
 | 
					
						
							| 
									
										
										
										
											2021-05-30 02:54:35 +08:00
										 |  |  | -   Fixed the issue where typing requires template global
 | 
					
						
							|  |  |  |     decorators to accept functions with no arguments. :issue:`4098`
 | 
					
						
							| 
									
										
										
										
											2021-05-28 07:01:48 +08:00
										 |  |  | -   Support View and MethodView instances with async handlers. :issue:`4112`
 | 
					
						
							| 
									
										
										
										
											2021-05-31 18:28:44 +08:00
										 |  |  | -   Enhance typing of ``app.errorhandler`` decorator. :issue:`4095`
 | 
					
						
							| 
									
										
										
										
											2021-06-05 23:08:51 +08:00
										 |  |  | -   Fix registering a blueprint twice with differing names. :issue:`4124`
 | 
					
						
							| 
									
										
										
										
											2021-06-17 03:40:01 +08:00
										 |  |  | -   Fix the type of ``static_folder`` to accept ``pathlib.Path``.
 | 
					
						
							|  |  |  |     :issue:`4150`
 | 
					
						
							| 
									
										
										
										
											2021-06-19 19:57:56 +08:00
										 |  |  | -   ``jsonify`` handles ``decimal.Decimal`` by encoding to ``str``.
 | 
					
						
							|  |  |  |     :issue:`4157`
 | 
					
						
							| 
									
										
										
										
											2021-06-23 07:36:03 +08:00
										 |  |  | -   Correctly handle raising deferred errors in CLI lazy loading.
 | 
					
						
							|  |  |  |     :issue:`4096`
 | 
					
						
							| 
									
										
										
										
											2021-06-25 10:39:13 +08:00
										 |  |  | -   The CLI loader handles ``**kwargs`` in a ``create_app`` function.
 | 
					
						
							|  |  |  |     :issue:`4170`
 | 
					
						
							| 
									
										
										
										
											2021-08-10 06:23:57 +08:00
										 |  |  | -   Fix the order of ``before_request`` and other callbacks that trigger
 | 
					
						
							|  |  |  |     before the view returns. They are called from the app down to the
 | 
					
						
							|  |  |  |     closest nested blueprint. :issue:`4229`
 | 
					
						
							| 
									
										
										
										
											2021-05-24 06:31:43 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-05-21 23:55:31 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-05-12 05:48:08 +08:00
										 |  |  | Version 2.0.1
 | 
					
						
							|  |  |  | -------------
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-05-21 23:50:31 +08:00
										 |  |  | Released 2021-05-21
 | 
					
						
							| 
									
										
										
										
											2021-05-12 05:48:08 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-05-12 19:04:20 +08:00
										 |  |  | -   Re-add the ``filename`` parameter in ``send_from_directory``. The
 | 
					
						
							|  |  |  |     ``filename`` parameter has been renamed to ``path``, the old name
 | 
					
						
							|  |  |  |     is deprecated. :pr:`4019`
 | 
					
						
							| 
									
										
										
										
											2021-05-13 03:47:49 +08:00
										 |  |  | -   Mark top-level names as exported so type checking understands
 | 
					
						
							|  |  |  |     imports in user projects. :issue:`4024`
 | 
					
						
							| 
									
										
										
										
											2021-05-14 02:33:01 +08:00
										 |  |  | -   Fix type annotation for ``g`` and inform mypy that it is a namespace
 | 
					
						
							|  |  |  |     object that has arbitrary attributes. :issue:`4020`
 | 
					
						
							| 
									
										
										
										
											2021-05-14 03:53:32 +08:00
										 |  |  | -   Fix some types that weren't available in Python 3.6.0. :issue:`4040`
 | 
					
						
							| 
									
										
										
										
											2021-05-12 22:52:25 +08:00
										 |  |  | -   Improve typing for ``send_file``, ``send_from_directory``, and
 | 
					
						
							|  |  |  |     ``get_send_file_max_age``. :issue:`4044`, :pr:`4026`
 | 
					
						
							| 
									
										
										
										
											2021-05-14 05:31:50 +08:00
										 |  |  | -   Show an error when a blueprint name contains a dot. The ``.`` has
 | 
					
						
							|  |  |  |     special meaning, it is used to separate (nested) blueprint names and
 | 
					
						
							|  |  |  |     the endpoint name. :issue:`4041`
 | 
					
						
							| 
									
										
										
										
											2021-05-13 18:26:24 +08:00
										 |  |  | -   Combine URL prefixes when nesting blueprints that were created with
 | 
					
						
							|  |  |  |     a ``url_prefix`` value. :issue:`4037`
 | 
					
						
							| 
									
										
										
										
											2022-07-10 19:22:56 +08:00
										 |  |  | -   Revert a change to the order that URL matching was done. The
 | 
					
						
							| 
									
										
										
										
											2021-05-14 23:11:09 +08:00
										 |  |  |     URL is again matched after the session is loaded, so the session is
 | 
					
						
							|  |  |  |     available in custom URL converters. :issue:`4053`
 | 
					
						
							| 
									
										
										
										
											2021-05-21 03:35:43 +08:00
										 |  |  | -   Re-add deprecated ``Config.from_json``, which was accidentally
 | 
					
						
							|  |  |  |     removed early. :issue:`4078`
 | 
					
						
							| 
									
										
										
										
											2021-05-18 05:14:47 +08:00
										 |  |  | -   Improve typing for some functions using ``Callable`` in their type
 | 
					
						
							|  |  |  |     signatures, focusing on decorator factories. :issue:`4060`
 | 
					
						
							| 
									
										
										
										
											2021-05-21 02:05:36 +08:00
										 |  |  | -   Nested blueprints are registered with their dotted name. This allows
 | 
					
						
							|  |  |  |     different blueprints with the same name to be nested at different
 | 
					
						
							|  |  |  |     locations. :issue:`4069`
 | 
					
						
							|  |  |  | -   ``register_blueprint`` takes a ``name`` option to change the
 | 
					
						
							|  |  |  |     (pre-dotted) name the blueprint is registered with. This allows the
 | 
					
						
							|  |  |  |     same blueprint to be registered multiple times with unique names for
 | 
					
						
							| 
									
										
										
										
											2021-05-21 04:08:28 +08:00
										 |  |  |     ``url_for``. Registering the same blueprint with the same name
 | 
					
						
							|  |  |  |     multiple times is deprecated. :issue:`1091`
 | 
					
						
							| 
									
										
										
										
											2021-05-21 23:42:44 +08:00
										 |  |  | -   Improve typing for ``stream_with_context``. :issue:`4052`
 | 
					
						
							| 
									
										
										
										
											2021-05-12 19:04:20 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-05-12 05:48:08 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-04-04 08:23:21 +08:00
										 |  |  | Version 2.0.0
 | 
					
						
							| 
									
										
										
										
											2019-09-24 19:39:22 +08:00
										 |  |  | -------------
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-05-12 05:30:47 +08:00
										 |  |  | Released 2021-05-11
 | 
					
						
							| 
									
										
										
										
											2019-09-24 19:39:22 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-04-04 08:23:21 +08:00
										 |  |  | -   Drop support for Python 2 and 3.5.
 | 
					
						
							| 
									
										
										
										
											2021-04-24 22:31:16 +08:00
										 |  |  | -   Bump minimum versions of other Pallets projects: Werkzeug >= 2,
 | 
					
						
							|  |  |  |     Jinja2 >= 3, MarkupSafe >= 2, ItsDangerous >= 2, Click >= 8. Be sure
 | 
					
						
							| 
									
										
										
										
											2021-04-25 02:01:09 +08:00
										 |  |  |     to check the change logs for each project. For better compatibility
 | 
					
						
							|  |  |  |     with other applications (e.g. Celery) that still require Click 7,
 | 
					
						
							|  |  |  |     there is no hard dependency on Click 8 yet, but using Click 7 will
 | 
					
						
							|  |  |  |     trigger a DeprecationWarning and Flask 2.1 will depend on Click 8.
 | 
					
						
							| 
									
										
										
										
											2020-04-08 03:33:00 +08:00
										 |  |  | -   JSON support no longer uses simplejson. To use another JSON module,
 | 
					
						
							|  |  |  |     override ``app.json_encoder`` and ``json_decoder``. :issue:`3555`
 | 
					
						
							|  |  |  | -   The ``encoding`` option to JSON functions is deprecated. :pr:`3562`
 | 
					
						
							| 
									
										
										
										
											2020-04-08 06:54:36 +08:00
										 |  |  | -   Passing ``script_info`` to app factory functions is deprecated. This
 | 
					
						
							|  |  |  |     was not portable outside the ``flask`` command. Use
 | 
					
						
							|  |  |  |     ``click.get_current_context().obj`` if it's needed. :issue:`3552`
 | 
					
						
							| 
									
										
										
										
											2020-07-31 09:36:55 +08:00
										 |  |  | -   The CLI shows better error messages when the app failed to load
 | 
					
						
							|  |  |  |     when looking up commands. :issue:`2741`
 | 
					
						
							| 
									
										
										
										
											2022-07-25 10:35:44 +08:00
										 |  |  | -   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
 | 
					
						
							| 
									
										
										
										
											2019-10-19 00:15:00 +08:00
										 |  |  |     loaders, such as ``toml.load`` or ``json.load``.
 | 
					
						
							| 
									
										
										
										
											2022-07-25 10:35:44 +08:00
										 |  |  |     ``Config.from_json`` is deprecated in favor of this. :pr:`3398`
 | 
					
						
							| 
									
										
										
										
											2019-11-19 04:36:00 +08:00
										 |  |  | -   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`
 | 
					
						
							| 
									
										
										
										
											2022-07-25 10:35:44 +08:00
										 |  |  | -   ``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`
 | 
					
						
							| 
									
										
										
										
											2020-02-10 08:01:23 +08:00
										 |  |  | -   When using ad-hoc certificates, check for the cryptography library
 | 
					
						
							|  |  |  |     instead of PyOpenSSL. :pr:`3492`
 | 
					
						
							| 
									
										
										
										
											2020-04-08 08:54:51 +08:00
										 |  |  | -   When specifying a factory function with ``FLASK_APP``, keyword
 | 
					
						
							|  |  |  |     argument can be passed. :issue:`3553`
 | 
					
						
							| 
									
										
										
										
											2020-07-12 03:18:37 +08:00
										 |  |  | -   When loading a ``.env`` or ``.flaskenv`` file, the current working
 | 
					
						
							|  |  |  |     directory is no longer changed to the location of the file.
 | 
					
						
							|  |  |  |     :pr:`3560`
 | 
					
						
							|  |  |  | -   When returning a ``(response, headers)`` tuple from a view, the
 | 
					
						
							|  |  |  |     headers replace rather than extend existing headers on the response.
 | 
					
						
							|  |  |  |     For example, this allows setting the ``Content-Type`` for
 | 
					
						
							|  |  |  |     ``jsonify()``. Use ``response.headers.extend()`` if extending is
 | 
					
						
							|  |  |  |     desired. :issue:`3628`
 | 
					
						
							| 
									
										
										
										
											2020-07-23 03:02:31 +08:00
										 |  |  | -   The ``Scaffold`` class provides a common API for the ``Flask`` and
 | 
					
						
							|  |  |  |     ``Blueprint`` classes. ``Blueprint`` information is stored in
 | 
					
						
							|  |  |  |     attributes just like ``Flask``, rather than opaque lambda functions.
 | 
					
						
							|  |  |  |     This is intended to improve consistency and maintainability.
 | 
					
						
							|  |  |  |     :issue:`3215`
 | 
					
						
							| 
									
										
										
										
											2020-11-05 10:16:05 +08:00
										 |  |  | -   Include ``samesite`` and ``secure`` options when removing the
 | 
					
						
							|  |  |  |     session cookie. :pr:`3726`
 | 
					
						
							| 
									
										
										
										
											2020-11-05 10:25:37 +08:00
										 |  |  | -   Support passing a ``pathlib.Path`` to ``static_folder``. :pr:`3579`
 | 
					
						
							| 
									
										
										
										
											2020-11-06 01:00:57 +08:00
										 |  |  | -   ``send_file`` and ``send_from_directory`` are wrappers around the
 | 
					
						
							|  |  |  |     implementations in ``werkzeug.utils``. :pr:`3828`
 | 
					
						
							|  |  |  | -   Some ``send_file`` parameters have been renamed, the old names are
 | 
					
						
							|  |  |  |     deprecated. ``attachment_filename`` is renamed to ``download_name``.
 | 
					
						
							| 
									
										
										
										
											2021-01-30 02:44:46 +08:00
										 |  |  |     ``cache_timeout`` is renamed to ``max_age``. ``add_etags`` is
 | 
					
						
							|  |  |  |     renamed to ``etag``. :pr:`3828, 3883`
 | 
					
						
							| 
									
										
										
										
											2020-11-06 01:00:57 +08:00
										 |  |  | -   ``send_file`` passes ``download_name`` even if
 | 
					
						
							|  |  |  |     ``as_attachment=False`` by using ``Content-Disposition: inline``.
 | 
					
						
							|  |  |  |     :pr:`3828`
 | 
					
						
							|  |  |  | -   ``send_file`` sets ``conditional=True`` and ``max_age=None`` by
 | 
					
						
							|  |  |  |     default. ``Cache-Control`` is set to ``no-cache`` if ``max_age`` is
 | 
					
						
							|  |  |  |     not set, otherwise ``public``. This tells browsers to validate
 | 
					
						
							|  |  |  |     conditional requests instead of using a timed cache. :pr:`3828`
 | 
					
						
							|  |  |  | -   ``helpers.safe_join`` is deprecated. Use
 | 
					
						
							|  |  |  |     ``werkzeug.utils.safe_join`` instead. :pr:`3828`
 | 
					
						
							| 
									
										
										
										
											2020-10-17 09:57:56 +08:00
										 |  |  | -   The request context does route matching before opening the session.
 | 
					
						
							|  |  |  |     This could allow a session interface to change behavior based on
 | 
					
						
							|  |  |  |     ``request.endpoint``. :issue:`3776`
 | 
					
						
							| 
									
										
										
										
											2021-02-02 14:41:49 +08:00
										 |  |  | -   Use Jinja's implementation of the ``|tojson`` filter. :issue:`3881`
 | 
					
						
							| 
									
										
										
										
											2021-02-14 19:08:21 +08:00
										 |  |  | -   Add route decorators for common HTTP methods. For example,
 | 
					
						
							|  |  |  |     ``@app.post("/login")`` is a shortcut for
 | 
					
						
							|  |  |  |     ``@app.route("/login", methods=["POST"])``. :pr:`3907`
 | 
					
						
							| 
									
										
										
										
											2020-07-07 03:54:26 +08:00
										 |  |  | -   Support async views, error handlers, before and after request, and
 | 
					
						
							|  |  |  |     teardown functions. :pr:`3412`
 | 
					
						
							| 
									
										
										
										
											2021-02-25 05:18:12 +08:00
										 |  |  | -   Support nesting blueprints. :issue:`593, 1548`, :pr:`3923`
 | 
					
						
							| 
									
										
										
										
											2021-04-28 14:02:19 +08:00
										 |  |  | -   Set the default encoding to "UTF-8" when loading ``.env`` and
 | 
					
						
							|  |  |  |     ``.flaskenv`` files to allow to use non-ASCII characters. :issue:`3931`
 | 
					
						
							| 
									
										
										
										
											2021-04-15 01:01:32 +08:00
										 |  |  | -   ``flask shell`` sets up tab and history completion like the default
 | 
					
						
							|  |  |  |     ``python`` shell if ``readline`` is installed. :issue:`3941`
 | 
					
						
							| 
									
										
										
										
											2021-04-16 14:05:24 +08:00
										 |  |  | -   ``helpers.total_seconds()`` is deprecated. Use
 | 
					
						
							|  |  |  |     ``timedelta.total_seconds()`` instead. :pr:`3962`
 | 
					
						
							| 
									
										
										
										
											2021-04-24 19:22:26 +08:00
										 |  |  | -   Add type hinting. :pr:`3973`.
 | 
					
						
							| 
									
										
										
										
											2020-04-21 01:26:33 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-05-14 08:19:02 +08:00
										 |  |  | Version 1.1.4
 | 
					
						
							|  |  |  | -------------
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-05-14 09:22:56 +08:00
										 |  |  | Released 2021-05-13
 | 
					
						
							| 
									
										
										
										
											2021-05-14 08:19:02 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | -   Update ``static_folder`` to use ``_compat.fspath`` instead of
 | 
					
						
							| 
									
										
										
										
											2021-05-14 09:22:56 +08:00
										 |  |  |     ``os.fspath`` to continue supporting Python < 3.6 :issue:`4050`
 | 
					
						
							| 
									
										
										
										
											2020-04-21 01:26:33 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-05-14 07:16:04 +08:00
										 |  |  | Version 1.1.3
 | 
					
						
							| 
									
										
										
										
											2020-04-21 01:26:33 +08:00
										 |  |  | -------------
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-05-14 07:22:57 +08:00
										 |  |  | Released 2021-05-13
 | 
					
						
							| 
									
										
										
										
											2020-04-21 01:26:33 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-05-14 07:16:04 +08:00
										 |  |  | -   Set maximum versions of Werkzeug, Jinja, Click, and ItsDangerous.
 | 
					
						
							|  |  |  |     :issue:`4043`
 | 
					
						
							|  |  |  | -   Re-add support for passing a ``pathlib.Path`` for ``static_folder``.
 | 
					
						
							|  |  |  |     :pr:`3579`
 | 
					
						
							| 
									
										
										
										
											2020-04-21 01:26:33 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-07-11 02:45:20 +08:00
										 |  |  | Version 1.1.2
 | 
					
						
							|  |  |  | -------------
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-04-04 01:08:11 +08:00
										 |  |  | Released 2020-04-03
 | 
					
						
							| 
									
										
										
										
											2019-07-11 02:45:20 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | -   Work around an issue when running the ``flask`` command with an
 | 
					
						
							|  |  |  |     external debugger on Windows. :issue:`3297`
 | 
					
						
							| 
									
										
										
										
											2019-12-26 09:33:42 +08:00
										 |  |  | -   The static route will not catch all URLs if the ``Flask``
 | 
					
						
							|  |  |  |     ``static_folder`` argument ends with a slash. :issue:`3452`
 | 
					
						
							| 
									
										
										
										
											2019-07-11 02:45:20 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-07-09 01:26:12 +08:00
										 |  |  | Version 1.1.1
 | 
					
						
							|  |  |  | -------------
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-07-09 01:55:25 +08:00
										 |  |  | Released 2019-07-08
 | 
					
						
							| 
									
										
										
										
											2019-07-09 01:26:12 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | -   The ``flask.json_available`` flag was added back for compatibility
 | 
					
						
							|  |  |  |     with some extensions. It will raise a deprecation warning when used,
 | 
					
						
							|  |  |  |     and will be removed in version 2.0.0. :issue:`3288`
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-05-18 23:35:47 +08:00
										 |  |  | Version 1.1.0
 | 
					
						
							|  |  |  | -------------
 | 
					
						
							| 
									
										
										
										
											2018-04-27 05:14:11 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-07-05 07:04:42 +08:00
										 |  |  | Released 2019-07-04
 | 
					
						
							| 
									
										
										
										
											2018-04-30 10:11:36 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-05-07 02:59:43 +08:00
										 |  |  | -   Bump minimum Werkzeug version to >= 0.15.
 | 
					
						
							|  |  |  | -   Drop support for Python 3.4.
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  | -   Error handlers for ``InternalServerError`` or ``500`` will always be
 | 
					
						
							|  |  |  |     passed an instance of ``InternalServerError``. If they are invoked
 | 
					
						
							| 
									
										
										
										
											2019-06-20 04:58:55 +08:00
										 |  |  |     due to an unhandled exception, that original exception is now
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  |     available as ``e.original_exception`` rather than being passed
 | 
					
						
							| 
									
										
										
										
											2019-06-20 04:58:55 +08:00
										 |  |  |     directly to the handler. The same is true if the handler is for the
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  |     base ``HTTPException``. This makes error handler behavior more
 | 
					
						
							|  |  |  |     consistent. :pr:`3266`
 | 
					
						
							| 
									
										
										
										
											2019-06-20 04:58:55 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-07-25 10:35:44 +08:00
										 |  |  |     -   ``Flask.finalize_request`` is called for all unhandled
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  |         exceptions even if there is no ``500`` error handler.
 | 
					
						
							| 
									
										
										
										
											2019-06-20 04:58:55 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-07-25 10:35:44 +08:00
										 |  |  | -   ``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
 | 
					
						
							| 
									
										
										
										
											2019-07-03 02:32:28 +08:00
										 |  |  |     detected that needs to be moved. :issue:`2866`
 | 
					
						
							| 
									
										
										
										
											2022-07-25 10:35:44 +08:00
										 |  |  | -   ``RequestContext.copy`` includes the current session object in the
 | 
					
						
							|  |  |  |     request context copy. This prevents ``session`` pointing to an
 | 
					
						
							|  |  |  |     out-of-date object. :issue:`2935`
 | 
					
						
							| 
									
										
										
										
											2019-01-07 22:56:20 +08:00
										 |  |  | -   Using built-in RequestContext, unprintable Unicode characters in
 | 
					
						
							|  |  |  |     Host header will result in a HTTP 400 response and not HTTP 500 as
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  |     previously. :pr:`2994`
 | 
					
						
							| 
									
										
										
										
											2022-07-25 10:35:44 +08:00
										 |  |  | -   ``send_file`` supports ``PathLike`` objects as described in
 | 
					
						
							|  |  |  |     :pep:`519`, to support ``pathlib`` in Python 3. :pr:`3059`
 | 
					
						
							|  |  |  | -   ``send_file`` supports ``BytesIO`` partial content.
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  |     :issue:`2957`
 | 
					
						
							| 
									
										
										
										
											2022-07-25 10:35:44 +08:00
										 |  |  | -   ``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
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  |     ``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
 | 
					
						
							|  |  |  |     moved into Werkzeug. Use Werkzeug's version with Flask-specific
 | 
					
						
							| 
									
										
										
										
											2019-05-07 02:59:43 +08:00
										 |  |  |     support. This bumps the Werkzeug dependency to >= 0.15.
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  |     :issue:`3125`
 | 
					
						
							|  |  |  | -   The ``flask`` command entry point is simplified to take advantage
 | 
					
						
							|  |  |  |     of Werkzeug 0.15's better reloader support. This bumps the Werkzeug
 | 
					
						
							|  |  |  |     dependency to >= 0.15. :issue:`3022`
 | 
					
						
							|  |  |  | -   Support ``static_url_path`` that ends with a forward slash.
 | 
					
						
							|  |  |  |     :issue:`3134`
 | 
					
						
							|  |  |  | -   Support empty ``static_folder`` without requiring setting an empty
 | 
					
						
							|  |  |  |     ``static_url_path`` as well. :pr:`3124`
 | 
					
						
							| 
									
										
										
										
											2022-07-25 10:35:44 +08:00
										 |  |  | -   ``jsonify`` supports ``dataclass`` objects. :pr:`3195`
 | 
					
						
							|  |  |  | -   Allow customizing the ``Flask.url_map_class`` used for routing.
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  |     :pr:`3069`
 | 
					
						
							| 
									
										
										
										
											2018-09-30 00:38:32 +08:00
										 |  |  | -   The development server port can be set to 0, which tells the OS to
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  |     pick an available port. :issue:`2926`
 | 
					
						
							| 
									
										
										
										
											2022-07-25 10:35:44 +08:00
										 |  |  | -   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`
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  | -   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
 | 
					
						
							| 
									
										
										
										
											2019-05-24 22:19:56 +08:00
										 |  |  |     specify extra files that will trigger the reloader on change.
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  |     :issue:`2897`
 | 
					
						
							| 
									
										
										
										
											2019-03-04 01:34:29 +08:00
										 |  |  | -   Allow returning a dictionary from a view function. Similar to how
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  |     returning a string will produce a ``text/html`` response, returning
 | 
					
						
							|  |  |  |     a dict will call ``jsonify`` to produce a ``application/json``
 | 
					
						
							|  |  |  |     response. :pr:`3111`
 | 
					
						
							|  |  |  | -   Blueprints have a ``cli`` Click group like ``app.cli``. CLI commands
 | 
					
						
							| 
									
										
										
										
											2018-05-15 10:05:54 +08:00
										 |  |  |     registered with a blueprint will be available as a group under the
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  |     ``flask`` command. :issue:`1357`.
 | 
					
						
							|  |  |  | -   When using the test client as a context manager (``with client:``),
 | 
					
						
							| 
									
										
										
										
											2019-04-17 06:29:17 +08:00
										 |  |  |     all preserved request contexts are popped when the block exits,
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  |     ensuring nested contexts are cleaned up correctly. :pr:`3157`
 | 
					
						
							| 
									
										
											  
											
												Better error message when view return type is not supported
Before, returning a `bool` from a route caused the error
```
[2019-05-31 10:08:42,216] ERROR in app: Exception on / [GET]
Traceback (most recent call last):
  File "/Users/johnzeringue/Documents/ts-open/flask/flask/app.py", line 2070, in make_response
    rv = self.response_class.force_type(rv, request.environ)
  File "/Users/johnzeringue/Documents/ts-open/flask/env/lib/python3.7/site-packages/werkzeug/wrappers/base_response.py", line 269, in force_type
    response = BaseResponse(*_run_wsgi_app(response, environ))
  File "/Users/johnzeringue/Documents/ts-open/flask/env/lib/python3.7/site-packages/werkzeug/wrappers/base_response.py", line 26, in _run_wsgi_app
    return _run_wsgi_app(*args)
  File "/Users/johnzeringue/Documents/ts-open/flask/env/lib/python3.7/site-packages/werkzeug/test.py", line 1119, in run_wsgi_app
    app_rv = app(environ, start_response)
TypeError: 'bool' object is not callable
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "/Users/johnzeringue/Documents/ts-open/flask/flask/app.py", line 2393, in wsgi_app
    response = self.full_dispatch_request()
  File "/Users/johnzeringue/Documents/ts-open/flask/flask/app.py", line 1906, in full_dispatch_request
    return self.finalize_request(rv)
  File "/Users/johnzeringue/Documents/ts-open/flask/flask/app.py", line 1921, in finalize_request
    response = self.make_response(rv)
  File "/Users/johnzeringue/Documents/ts-open/flask/flask/app.py", line 2078, in make_response
    reraise(TypeError, new_error, sys.exc_info()[2])
  File "/Users/johnzeringue/Documents/ts-open/flask/flask/_compat.py", line 39, in reraise
    raise value.with_traceback(tb)
  File "/Users/johnzeringue/Documents/ts-open/flask/flask/app.py", line 2070, in make_response
    rv = self.response_class.force_type(rv, request.environ)
  File "/Users/johnzeringue/Documents/ts-open/flask/env/lib/python3.7/site-packages/werkzeug/wrappers/base_response.py", line 269, in force_type
    response = BaseResponse(*_run_wsgi_app(response, environ))
  File "/Users/johnzeringue/Documents/ts-open/flask/env/lib/python3.7/site-packages/werkzeug/wrappers/base_response.py", line 26, in _run_wsgi_app
    return _run_wsgi_app(*args)
  File "/Users/johnzeringue/Documents/ts-open/flask/env/lib/python3.7/site-packages/werkzeug/test.py", line 1119, in run_wsgi_app
    app_rv = app(environ, start_response)
TypeError: 'bool' object is not callable
The view function did not return a valid response. The return type must be a string, tuple, Response instance, or WSGI callable, but it was a bool.
```
Now, it returns the more readable
```
[2019-05-31 10:36:19,500] ERROR in app: Exception on / [GET]
Traceback (most recent call last):
  File "/Users/johnzeringue/Documents/ts-open/flask/flask/app.py", line 2400, in wsgi_app
    response = self.full_dispatch_request()
  File "/Users/johnzeringue/Documents/ts-open/flask/flask/app.py", line 1907, in full_dispatch_request
    return self.finalize_request(rv)
  File "/Users/johnzeringue/Documents/ts-open/flask/flask/app.py", line 1922, in finalize_request
    response = self.make_response(rv)
  File "/Users/johnzeringue/Documents/ts-open/flask/flask/app.py", line 2085, in make_response
    " {rv.__class__.__name__}.".format(rv=rv))
TypeError: The view function did not return a valid response. The return type must be a string, dict, tuple, Response instance, or WSGI callable, but it was a bool.
```
Fixes #3214
											
										 
											2019-05-31 22:56:01 +08:00
										 |  |  | -   Show a better error message when the view return type is not
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  |     supported. :issue:`3214`
 | 
					
						
							|  |  |  | -   ``flask.testing.make_test_environ_builder()`` has been deprecated in
 | 
					
						
							|  |  |  |     favour of a new class ``flask.testing.EnvironBuilder``. :pr:`3232`
 | 
					
						
							|  |  |  | -   The ``flask run`` command no longer fails if Python is not built
 | 
					
						
							|  |  |  |     with SSL support. Using the ``--cert`` option will show an
 | 
					
						
							|  |  |  |     appropriate error message. :issue:`3211`
 | 
					
						
							| 
									
										
										
										
											2019-06-14 03:40:01 +08:00
										 |  |  | -   URL matching now occurs after the request context is pushed, rather
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  |     than when it's created. This allows custom URL converters to access
 | 
					
						
							| 
									
										
										
										
											2019-06-14 03:40:01 +08:00
										 |  |  |     the app and request contexts, such as to query a database for an id.
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  |     :issue:`3088`
 | 
					
						
							| 
									
										
										
										
											2019-06-27 05:46:10 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-06-27 05:32:20 +08:00
										 |  |  | Version 1.0.4
 | 
					
						
							|  |  |  | -------------
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-07-05 06:33:46 +08:00
										 |  |  | Released 2019-07-04
 | 
					
						
							| 
									
										
										
										
											2019-06-27 05:32:20 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  | -   The key information for ``BadRequestKeyError`` is no longer cleared
 | 
					
						
							| 
									
										
										
										
											2019-06-27 05:32:20 +08:00
										 |  |  |     outside debug mode, so error handlers can still access it. This
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  |     requires upgrading to Werkzeug 0.15.5. :issue:`3249`
 | 
					
						
							| 
									
										
										
										
											2019-06-27 22:55:22 +08:00
										 |  |  | -   ``send_file`` url quotes the ":" and "/" characters for more
 | 
					
						
							|  |  |  |     compatible UTF-8 filename support in some browsers. :issue:`3074`
 | 
					
						
							| 
									
										
										
										
											2022-07-25 10:35:44 +08:00
										 |  |  | -   Fixes for :pep:`451` import loaders and pytest 5.x. :issue:`3275`
 | 
					
						
							| 
									
										
										
										
											2019-07-04 03:23:16 +08:00
										 |  |  | -   Show message about dotenv on stderr instead of stdout. :issue:`3285`
 | 
					
						
							| 
									
										
										
										
											2018-11-04 11:32:24 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-04-30 10:11:36 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-05-02 22:16:58 +08:00
										 |  |  | Version 1.0.3
 | 
					
						
							| 
									
										
										
										
											2018-04-30 10:10:48 +08:00
										 |  |  | -------------
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-05-18 01:57:51 +08:00
										 |  |  | Released 2019-05-17
 | 
					
						
							| 
									
										
										
										
											2018-04-27 05:14:11 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-07-25 10:35:44 +08:00
										 |  |  | -   ``send_file`` encodes filenames as ASCII instead of Latin-1
 | 
					
						
							| 
									
										
										
										
											2018-05-28 21:26:27 +08:00
										 |  |  |     (ISO-8859-1). This fixes compatibility with Gunicorn, which is
 | 
					
						
							| 
									
										
										
										
											2022-07-25 10:35:44 +08:00
										 |  |  |     stricter about header encodings than :pep:`3333`. :issue:`2766`
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  | -   Allow custom CLIs using ``FlaskGroup`` to set the debug flag without
 | 
					
						
							| 
									
										
										
										
											2018-10-04 20:42:24 +08:00
										 |  |  |     it always being overwritten based on environment variables.
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  |     :pr:`2765`
 | 
					
						
							|  |  |  | -   ``flask --version`` outputs Werkzeug's version and simplifies the
 | 
					
						
							|  |  |  |     Python version. :pr:`2825`
 | 
					
						
							| 
									
										
										
										
											2022-07-25 10:35:44 +08:00
										 |  |  | -   ``send_file`` handles an ``attachment_filename`` that is a native
 | 
					
						
							|  |  |  |     Python 2 string (bytes) with UTF-8 coded bytes. :issue:`2933`
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  | -   A catch-all error handler registered for ``HTTPException`` will not
 | 
					
						
							|  |  |  |     handle ``RoutingException``, which is used internally during
 | 
					
						
							| 
									
										
										
										
											2019-01-08 01:52:54 +08:00
										 |  |  |     routing. This fixes the unexpected behavior that had been introduced
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  |     in 1.0. :pr:`2986`
 | 
					
						
							|  |  |  | -   Passing the ``json`` argument to ``app.test_client`` does not
 | 
					
						
							|  |  |  |     push/pop an extra app context. :issue:`2900`
 | 
					
						
							| 
									
										
										
										
											2018-05-28 21:26:27 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-04-30 10:10:48 +08:00
										 |  |  | Version 1.0.2
 | 
					
						
							|  |  |  | -------------
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-05-18 01:57:51 +08:00
										 |  |  | Released 2018-05-02
 | 
					
						
							| 
									
										
										
										
											2018-05-02 22:14:08 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | -   Fix more backwards compatibility issues with merging slashes between
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  |     a blueprint prefix and route. :pr:`2748`
 | 
					
						
							|  |  |  | -   Fix error with ``flask routes`` command when there are no routes.
 | 
					
						
							|  |  |  |     :issue:`2751`
 | 
					
						
							| 
									
										
										
										
											2018-04-30 10:10:48 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-04-27 05:14:44 +08:00
										 |  |  | Version 1.0.1
 | 
					
						
							|  |  |  | -------------
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-05-18 01:57:51 +08:00
										 |  |  | Released 2018-04-29
 | 
					
						
							| 
									
										
										
										
											2018-04-27 05:14:44 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  | -   Fix registering partials (with no ``__name__``) as view functions.
 | 
					
						
							|  |  |  |     :pr:`2730`
 | 
					
						
							|  |  |  | -   Don't treat lists returned from view functions the same as tuples.
 | 
					
						
							|  |  |  |     Only tuples are interpreted as response data. :issue:`2736`
 | 
					
						
							|  |  |  | -   Extra slashes between a blueprint's ``url_prefix`` and a route URL
 | 
					
						
							| 
									
										
										
										
											2018-04-30 09:46:54 +08:00
										 |  |  |     are merged. This fixes some backwards compatibility issues with the
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  |     change in 1.0. :issue:`2731`, :issue:`2742`
 | 
					
						
							|  |  |  | -   Only trap ``BadRequestKeyError`` errors in debug mode, not all
 | 
					
						
							|  |  |  |     ``BadRequest`` errors. This allows ``abort(400)`` to continue
 | 
					
						
							|  |  |  |     working as expected. :issue:`2735`
 | 
					
						
							|  |  |  | -   The ``FLASK_SKIP_DOTENV`` environment variable can be set to ``1``
 | 
					
						
							|  |  |  |     to skip automatically loading dotenv files. :issue:`2722`
 | 
					
						
							| 
									
										
										
										
											2018-04-27 05:14:44 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-01-24 07:34:52 +08:00
										 |  |  | Version 1.0
 | 
					
						
							|  |  |  | -----------
 | 
					
						
							| 
									
										
										
										
											2018-01-05 23:40:51 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-05-18 01:57:51 +08:00
										 |  |  | Released 2018-04-26
 | 
					
						
							| 
									
										
										
										
											2016-12-31 05:28:43 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  | -   Python 2.6 and 3.3 are no longer supported.
 | 
					
						
							| 
									
										
										
										
											2018-04-19 14:03:17 +08:00
										 |  |  | -   Bump minimum dependency versions to the latest stable versions:
 | 
					
						
							|  |  |  |     Werkzeug >= 0.14, Jinja >= 2.10, itsdangerous >= 0.24, Click >= 5.1.
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  |     :issue:`2586`
 | 
					
						
							| 
									
										
										
										
											2022-07-25 10:35:44 +08:00
										 |  |  | -   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``.
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  |     :pr:`2223`
 | 
					
						
							| 
									
										
										
										
											2022-07-25 10:35:44 +08:00
										 |  |  | -   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`
 | 
					
						
							| 
									
										
										
										
											2018-04-19 14:03:17 +08:00
										 |  |  | -   Errors caused while opening the session at the beginning of the
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  |     request are handled by the app's error handlers. :pr:`2254`
 | 
					
						
							| 
									
										
										
										
											2022-07-25 10:35:44 +08:00
										 |  |  | -   Blueprints gained ``Blueprint.json_encoder`` and
 | 
					
						
							|  |  |  |     ``Blueprint.json_decoder`` attributes to override the app's
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  |     encoder and decoder. :pr:`1898`
 | 
					
						
							| 
									
										
										
										
											2022-07-25 10:35:44 +08:00
										 |  |  | -   ``Flask.make_response`` raises ``TypeError`` instead of
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  |     ``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
 | 
					
						
							|  |  |  |     application. :pr:`2259`
 | 
					
						
							| 
									
										
										
										
											2018-04-19 14:03:17 +08:00
										 |  |  | -   Show warning when session cookie domain is a bare hostname or an IP
 | 
					
						
							|  |  |  |     address, as these may not behave properly in some browsers, such as
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  |     Chrome. :pr:`2282`
 | 
					
						
							|  |  |  | -   Allow IP address as exact session cookie domain. :pr:`2282`
 | 
					
						
							|  |  |  | -   ``SESSION_COOKIE_DOMAIN`` is set if it is detected through
 | 
					
						
							|  |  |  |     ``SERVER_NAME``. :pr:`2282`
 | 
					
						
							|  |  |  | -   Auto-detect zero-argument app factory called ``create_app`` or
 | 
					
						
							|  |  |  |     ``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
 | 
					
						
							| 
									
										
										
										
											2022-07-25 10:35:44 +08:00
										 |  |  |     parameter or a parameter named ``script_info``, the ``ScriptInfo``
 | 
					
						
							|  |  |  |     object will be passed. :pr:`2319`
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  | -   ``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`
 | 
					
						
							| 
									
										
										
										
											2022-07-25 10:35:44 +08:00
										 |  |  | -   The ``View`` class attribute
 | 
					
						
							|  |  |  |     ``View.provide_automatic_options`` is set in ``View.as_view``, to be
 | 
					
						
							|  |  |  |     detected by ``Flask.add_url_rule``. :pr:`2316`
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  | -   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`
 | 
					
						
							| 
									
										
										
										
											2022-07-25 10:35:44 +08:00
										 |  |  | -   ``Flask.test_request_context`` accepts ``subdomain`` and
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  |     ``url_scheme`` arguments for use when building the base URL.
 | 
					
						
							|  |  |  |     :pr:`1621`
 | 
					
						
							| 
									
										
										
										
											2022-07-25 10:35:44 +08:00
										 |  |  | -   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.
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  |     ``BadRequestKeyError`` has a message with the bad key in debug mode
 | 
					
						
							|  |  |  |     instead of the generic bad request message. :pr:`2348`
 | 
					
						
							| 
									
										
										
										
											2022-07-25 10:35:44 +08:00
										 |  |  | -   Allow registering new tags with ``TaggedJSONSerializer`` to support
 | 
					
						
							|  |  |  |     storing other types in the session cookie. :pr:`2352`
 | 
					
						
							| 
									
										
										
										
											2018-04-19 14:03:17 +08:00
										 |  |  | -   Only open the session if the request has not been pushed onto the
 | 
					
						
							| 
									
										
										
										
											2022-07-25 10:35:44 +08:00
										 |  |  |     context stack yet. This allows ``stream_with_context`` generators to
 | 
					
						
							|  |  |  |     access the same session that the containing view uses. :pr:`2354`
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  | -   Add ``json`` keyword argument for the test client request methods.
 | 
					
						
							| 
									
										
										
										
											2018-04-19 14:03:17 +08:00
										 |  |  |     This will dump the given object as JSON and set the appropriate
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  |     content type. :pr:`2358`
 | 
					
						
							| 
									
										
										
										
											2022-07-25 10:35:44 +08:00
										 |  |  | -   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`
 | 
					
						
							| 
									
										
										
										
											2018-04-19 14:03:17 +08:00
										 |  |  | -   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
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  |     MRO. :pr:`2362`
 | 
					
						
							|  |  |  | -   Fix incorrect JSON encoding of aware, non-UTC datetimes. :pr:`2374`
 | 
					
						
							| 
									
										
										
										
											2018-04-19 14:03:17 +08:00
										 |  |  | -   Template auto reloading will honor debug mode even even if
 | 
					
						
							| 
									
										
										
										
											2022-07-25 10:35:44 +08:00
										 |  |  |     ``Flask.jinja_env`` was already accessed. :pr:`2373`
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  | -   The following old deprecated code was removed. :issue:`2385`
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     -   ``flask.ext`` - import extensions directly by their name instead
 | 
					
						
							|  |  |  |         of through the ``flask.ext`` namespace. For example,
 | 
					
						
							|  |  |  |         ``import flask.ext.sqlalchemy`` becomes
 | 
					
						
							|  |  |  |         ``import flask_sqlalchemy``.
 | 
					
						
							|  |  |  |     -   ``Flask.init_jinja_globals`` - extend
 | 
					
						
							| 
									
										
										
										
											2022-07-25 10:35:44 +08:00
										 |  |  |         ``Flask.create_jinja_environment`` instead.
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  |     -   ``Flask.error_handlers`` - tracked by
 | 
					
						
							| 
									
										
										
										
											2022-07-25 10:35:44 +08:00
										 |  |  |         ``Flask.error_handler_spec``, use ``Flask.errorhandler``
 | 
					
						
							| 
									
										
										
										
											2018-04-19 14:03:17 +08:00
										 |  |  |         to register handlers.
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  |     -   ``Flask.request_globals_class`` - use
 | 
					
						
							| 
									
										
										
										
											2022-07-25 10:35:44 +08:00
										 |  |  |         ``Flask.app_ctx_globals_class`` instead.
 | 
					
						
							|  |  |  |     -   ``Flask.static_path`` - use ``Flask.static_url_path`` instead.
 | 
					
						
							|  |  |  |     -   ``Request.module`` - use ``Request.blueprint`` instead.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | -   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
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  |     variables from ``.env`` and ``.flaskenv`` files if python-dotenv is
 | 
					
						
							|  |  |  |     installed. :pr:`2416`
 | 
					
						
							| 
									
										
										
										
											2018-04-19 14:03:17 +08:00
										 |  |  | -   When passing a full URL to the test client, the scheme in the URL is
 | 
					
						
							| 
									
										
										
										
											2022-07-25 10:35:44 +08:00
										 |  |  |     used instead of ``PREFERRED_URL_SCHEME``. :pr:`2430`
 | 
					
						
							|  |  |  | -   ``Flask.logger`` has been simplified. ``LOGGER_NAME`` and
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  |     ``LOGGER_HANDLER_POLICY`` config was removed. The logger is always
 | 
					
						
							|  |  |  |     named ``flask.app``. The level is only set on first access, it
 | 
					
						
							| 
									
										
										
										
											2022-07-25 10:35:44 +08:00
										 |  |  |     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`
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  | -   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`
 | 
					
						
							| 
									
										
										
										
											2022-07-25 10:35:44 +08:00
										 |  |  | -   Loading config files with ``silent=True`` will ignore ``ENOTDIR``
 | 
					
						
							|  |  |  |     errors. :pr:`2581`
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  | -   Pass ``--cert`` and ``--key`` options to ``flask run`` to run the
 | 
					
						
							|  |  |  |     development server over HTTPS. :pr:`2606`
 | 
					
						
							| 
									
										
										
										
											2022-07-25 10:35:44 +08:00
										 |  |  | -   Added ``SESSION_COOKIE_SAMESITE`` to control the ``SameSite``
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  |     attribute on the session cookie. :pr:`2607`
 | 
					
						
							| 
									
										
										
										
											2022-07-25 10:35:44 +08:00
										 |  |  | -   Added ``Flask.test_cli_runner`` to create a Click runner that can
 | 
					
						
							|  |  |  |     invoke Flask CLI commands for testing. :pr:`2636`
 | 
					
						
							| 
									
										
										
										
											2018-04-19 14:03:17 +08:00
										 |  |  | -   Subdomain matching is disabled by default and setting
 | 
					
						
							| 
									
										
										
										
											2022-07-25 10:35:44 +08:00
										 |  |  |     ``SERVER_NAME`` does not implicitly enable it. It can be enabled by
 | 
					
						
							|  |  |  |     passing ``subdomain_matching=True`` to the ``Flask`` constructor.
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  |     :pr:`2635`
 | 
					
						
							| 
									
										
										
										
											2018-04-19 14:03:17 +08:00
										 |  |  | -   A single trailing slash is stripped from the blueprint
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  |     ``url_prefix`` when it is registered with the app. :pr:`2629`
 | 
					
						
							| 
									
										
										
										
											2022-07-25 10:35:44 +08:00
										 |  |  | -   ``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
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  |     ignore. :pr:`2693`
 | 
					
						
							| 
									
										
										
										
											2018-04-19 14:03:17 +08:00
										 |  |  | -   Updated documentation theme to make docs look better in small
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  |     windows. :pr:`2709`
 | 
					
						
							| 
									
										
										
										
											2018-04-19 14:03:17 +08:00
										 |  |  | -   Rewrote the tutorial docs and example project to take a more
 | 
					
						
							|  |  |  |     structured approach to help new users avoid common pitfalls.
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  |     :pr:`2676`
 | 
					
						
							| 
									
										
										
										
											2018-04-27 03:22:45 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-02-11 03:36:55 +08:00
										 |  |  | Version 0.12.5
 | 
					
						
							|  |  |  | --------------
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-02-11 08:36:40 +08:00
										 |  |  | Released 2020-02-10
 | 
					
						
							| 
									
										
										
										
											2020-02-11 03:36:55 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-02-11 08:36:40 +08:00
										 |  |  | -   Pin Werkzeug to < 1.0.0. :issue:`3497`
 | 
					
						
							| 
									
										
										
										
											2020-02-11 03:36:55 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-04-30 09:22:05 +08:00
										 |  |  | Version 0.12.4
 | 
					
						
							|  |  |  | --------------
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  | Released 2018-04-29
 | 
					
						
							| 
									
										
										
										
											2018-04-27 03:22:45 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  | -   Repackage 0.12.3 to fix package layout issue. :issue:`2728`
 | 
					
						
							| 
									
										
										
										
											2018-04-30 10:36:07 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-04-27 03:22:45 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-11-23 17:32:13 +08:00
										 |  |  | Version 0.12.3
 | 
					
						
							|  |  |  | --------------
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  | Released 2018-04-26
 | 
					
						
							| 
									
										
										
										
											2017-11-23 17:32:13 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-07-25 10:35:44 +08:00
										 |  |  | -   ``Request.get_json`` no longer accepts arbitrary encodings.
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  |     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``.
 | 
					
						
							|  |  |  |     :issue:`2666`
 | 
					
						
							|  |  |  | -   Fix a ``ValueError`` caused by invalid ``Range`` requests in some
 | 
					
						
							| 
									
										
										
										
											2018-04-11 04:10:53 +08:00
										 |  |  |     cases.
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-11-23 17:32:13 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-05-16 07:58:01 +08:00
										 |  |  | Version 0.12.2
 | 
					
						
							|  |  |  | --------------
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  | Released 2017-05-16
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  | -   Fix a bug in ``safe_join`` on Windows.
 | 
					
						
							| 
									
										
										
										
											2017-05-16 07:58:01 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-12-25 23:33:55 +08:00
										 |  |  | Version 0.12.1
 | 
					
						
							|  |  |  | --------------
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  | Released 2017-03-31
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  | -   Prevent ``flask run`` from showing a ``NoAppException`` when an
 | 
					
						
							|  |  |  |     ``ImportError`` occurs within the imported application module.
 | 
					
						
							|  |  |  | -   Fix encoding behavior of ``app.config.from_pyfile`` for Python 3.
 | 
					
						
							|  |  |  |     :issue:`2118`
 | 
					
						
							|  |  |  | -   Use the ``SERVER_NAME`` config if it is present as default values
 | 
					
						
							|  |  |  |     for ``app.run``. :issue:`2109`, :pr:`2152`
 | 
					
						
							|  |  |  | -   Call ``ctx.auto_pop`` with the exception object instead of ``None``,
 | 
					
						
							|  |  |  |     in the event that a ``BaseException`` such as ``KeyboardInterrupt``
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  |     is raised in a request handler.
 | 
					
						
							| 
									
										
										
										
											2016-12-25 23:33:55 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-12-26 10:50:47 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-06-02 19:53:35 +08:00
										 |  |  | Version 0.12
 | 
					
						
							|  |  |  | ------------
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  | Released 2016-12-21, codename Punsch
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  | -   The cli command now responds to ``--version``.
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  | -   Mimetype guessing and ETag generation for file-like objects in
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  |     ``send_file`` has been removed. :issue:`104`, :pr`1849`
 | 
					
						
							|  |  |  | -   Mimetype guessing in ``send_file`` now fails loudly and doesn't fall
 | 
					
						
							|  |  |  |     back to ``application/octet-stream``. :pr:`1988`
 | 
					
						
							|  |  |  | -   Make ``flask.safe_join`` able to join multiple paths like
 | 
					
						
							|  |  |  |     ``os.path.join`` :pr:`1730`
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  | -   Revert a behavior change that made the dev server crash instead of
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  |     returning an Internal Server Error. :pr:`2006`
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  | -   Correctly invoke response handlers for both regular request
 | 
					
						
							|  |  |  |     dispatching as well as error handlers.
 | 
					
						
							|  |  |  | -   Disable logger propagation by default for the app logger.
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  | -   Add support for range requests in ``send_file``.
 | 
					
						
							|  |  |  | -   ``app.test_client`` includes preset default environment, which can
 | 
					
						
							|  |  |  |     now be directly set, instead of per ``client.get``.
 | 
					
						
							|  |  |  | -   Fix crash when running under PyPy3. :pr:`1814`
 | 
					
						
							| 
									
										
										
										
											2018-05-22 18:39:35 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-06-14 02:29:21 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-06-04 00:43:32 +08:00
										 |  |  | Version 0.11.1
 | 
					
						
							|  |  |  | --------------
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  | Released 2016-06-07
 | 
					
						
							| 
									
										
										
										
											2016-06-04 00:43:32 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  | -   Fixed a bug that prevented ``FLASK_APP=foobar/__init__.py`` from
 | 
					
						
							|  |  |  |     working. :pr:`1872`
 | 
					
						
							| 
									
										
										
										
											2019-01-04 09:17:45 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-06-04 00:43:32 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-05-27 03:05:39 +08:00
										 |  |  | Version 0.11
 | 
					
						
							|  |  |  | ------------
 | 
					
						
							| 
									
										
										
										
											2013-07-30 22:43:41 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  | Released 2016-05-29, codename Absinthe
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-07-25 10:35:44 +08:00
										 |  |  | -   Added support to serializing top-level arrays to ``jsonify``. This
 | 
					
						
							|  |  |  |     introduces a security risk in ancient browsers.
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  | -   Added before_render_template signal.
 | 
					
						
							| 
									
										
										
										
											2022-07-25 10:35:44 +08:00
										 |  |  | -   Added ``**kwargs`` to ``Flask.test_client`` to support passing
 | 
					
						
							|  |  |  |     additional keyword arguments to the constructor of
 | 
					
						
							|  |  |  |     ``Flask.test_client_class``.
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  | -   Added ``SESSION_REFRESH_EACH_REQUEST`` config key that controls the
 | 
					
						
							|  |  |  |     set-cookie behavior. If set to ``True`` a permanent session will be
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  |     refreshed each request and get their lifetime extended, if set to
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  |     ``False`` it will only be modified if the session actually modifies.
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  |     Non permanent sessions are not affected by this and will always
 | 
					
						
							|  |  |  |     expire if the browser window closes.
 | 
					
						
							|  |  |  | -   Made Flask support custom JSON mimetypes for incoming data.
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  | -   Added support for returning tuples in the form ``(response,
 | 
					
						
							|  |  |  |     headers)`` from a view function.
 | 
					
						
							| 
									
										
										
										
											2022-07-25 10:35:44 +08:00
										 |  |  | -   Added ``Config.from_json``.
 | 
					
						
							|  |  |  | -   Added ``Flask.config_class``.
 | 
					
						
							|  |  |  | -   Added ``Config.get_namespace``.
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  | -   Templates are no longer automatically reloaded outside of debug
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  |     mode. This can be configured with the new ``TEMPLATES_AUTO_RELOAD``
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  |     config key.
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  | -   Added a workaround for a limitation in Python 3.3's namespace
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  |     loader.
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  | -   Added support for explicit root paths when using Python 3.3's
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  |     namespace packages.
 | 
					
						
							| 
									
										
										
										
											2022-07-25 10:35:44 +08:00
										 |  |  | -   Added ``flask`` and the ``flask.cli`` module to start the
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  |     local debug server through the click CLI system. This is recommended
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  |     over the old ``flask.run()`` method as it works faster and more
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  |     reliable due to a different design and also replaces
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  |     ``Flask-Script``.
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  | -   Error handlers that match specific classes are now checked first,
 | 
					
						
							|  |  |  |     thereby allowing catching exceptions that are subclasses of HTTP
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  |     exceptions (in ``werkzeug.exceptions``). This makes it possible for
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  |     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.
 | 
					
						
							| 
									
										
										
										
											2022-07-25 10:35:44 +08:00
										 |  |  | -   Added ``Config.from_mapping``.
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  | -   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
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  |     through the ``LOGGER_HANDLER_POLICY`` configuration key.
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  | -   Removed deprecated module functionality.
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  | -   Added the ``EXPLAIN_TEMPLATE_LOADING`` config flag which when
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  |     enabled will instruct Flask to explain how it locates templates.
 | 
					
						
							|  |  |  |     This should help users debug when the wrong templates are loaded.
 | 
					
						
							|  |  |  | -   Enforce blueprint handling in the order they were registered for
 | 
					
						
							|  |  |  |     template loading.
 | 
					
						
							|  |  |  | -   Ported test suite to py.test.
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  | -   Deprecated ``request.json`` in favour of ``request.get_json()``.
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  | -   Add "pretty" and "compressed" separators definitions in jsonify()
 | 
					
						
							|  |  |  |     method. Reduces JSON response size when
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  |     ``JSONIFY_PRETTYPRINT_REGULAR=False`` by removing unnecessary white
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  |     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
 | 
					
						
							| 
									
										
										
										
											2022-07-25 10:35:44 +08:00
										 |  |  |     clients don't deal well when this newline is missing. :pr:`1262`
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  | -   The automatically provided ``OPTIONS`` method is now correctly
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  |     disabled if the user registered an overriding rule with the
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  |     lowercase-version ``options``. :issue:`1288`
 | 
					
						
							|  |  |  | -   ``flask.json.jsonify`` now supports the ``datetime.date`` type.
 | 
					
						
							|  |  |  |     :pr:`1326`
 | 
					
						
							|  |  |  | -   Don't leak exception info of already caught exceptions to context
 | 
					
						
							|  |  |  |     teardown handlers. :pr:`1393`
 | 
					
						
							|  |  |  | -   Allow custom Jinja environment subclasses. :pr:`1422`
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  | -   Updated extension dev guidelines.
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  | -   ``flask.g`` now has ``pop()`` and ``setdefault`` methods.
 | 
					
						
							|  |  |  | -   Turn on autoescape for ``flask.templating.render_template_string``
 | 
					
						
							|  |  |  |     by default. :pr:`1515`
 | 
					
						
							|  |  |  | -   ``flask.ext`` is now deprecated. :pr:`1484`
 | 
					
						
							|  |  |  | -   ``send_from_directory`` now raises BadRequest if the filename is
 | 
					
						
							|  |  |  |     invalid on the server OS. :pr:`1763`
 | 
					
						
							|  |  |  | -   Added the ``JSONIFY_MIMETYPE`` configuration variable. :pr:`1728`
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  | -   Exceptions during teardown handling will no longer leave bad
 | 
					
						
							|  |  |  |     application contexts lingering around.
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  | -   Fixed broken ``test_appcontext_signals()`` test case.
 | 
					
						
							| 
									
										
										
										
											2022-07-25 10:35:44 +08:00
										 |  |  | -   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.
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  | -   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
 | 
					
						
							|  |  |  |     in the test client when absolute URLs were requested.
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  | -   Made ``@before_first_request`` into a decorator as intended.
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  | -   Fixed an etags bug when sending a file streams with a name.
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  | -   Fixed ``send_from_directory`` not expanding to the application root
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  |     path correctly.
 | 
					
						
							|  |  |  | -   Changed logic of before first request handlers to flip the flag
 | 
					
						
							|  |  |  |     after invoking. This will allow some uses that are potentially
 | 
					
						
							|  |  |  |     dangerous but should probably be permitted.
 | 
					
						
							|  |  |  | -   Fixed Python 3 bug when a handler from
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  |     ``app.url_build_error_handlers`` reraises the ``BuildError``.
 | 
					
						
							| 
									
										
										
										
											2013-06-27 22:49:27 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-06-14 06:36:50 +08:00
										 |  |  | Version 0.10.1
 | 
					
						
							|  |  |  | --------------
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  | Released 2013-06-14
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  | -   Fixed an issue where ``|tojson`` was not quoting single quotes which
 | 
					
						
							|  |  |  |     made the filter not work properly in HTML attributes. Now it's
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  |     possible to use that filter in single quoted attributes. This should
 | 
					
						
							|  |  |  |     make using that filter with angular.js easier.
 | 
					
						
							|  |  |  | -   Added support for byte strings back to the session system. This
 | 
					
						
							|  |  |  |     broke compatibility with the common case of people putting binary
 | 
					
						
							|  |  |  |     data for token verification into the session.
 | 
					
						
							|  |  |  | -   Fixed an issue where registering the same method twice for the same
 | 
					
						
							|  |  |  |     endpoint would trigger an exception incorrectly.
 | 
					
						
							| 
									
										
										
										
											2013-06-14 06:36:50 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-06-14 07:05:09 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-08-11 09:36:14 +08:00
										 |  |  | Version 0.10
 | 
					
						
							|  |  |  | ------------
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  | Released 2013-06-13, codename Limoncello
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | -   Changed default cookie serialization format from pickle to JSON to
 | 
					
						
							| 
									
										
										
										
											2020-04-04 02:58:16 +08:00
										 |  |  |     limit the impact an attacker can do if the secret key leaks.
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  | -   Added ``template_test`` methods in addition to the already existing
 | 
					
						
							|  |  |  |     ``template_filter`` method family.
 | 
					
						
							|  |  |  | -   Added ``template_global`` methods in addition to the already
 | 
					
						
							|  |  |  |     existing ``template_filter`` method family.
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  | -   Set the content-length header for x-sendfile.
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  | -   ``tojson`` filter now does not escape script blocks in HTML5
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  |     parsers.
 | 
					
						
							| 
									
										
										
										
											2022-07-12 06:02:00 +08:00
										 |  |  | -   ``tojson`` used in templates is now safe by default. This was
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  |     allowed due to the different escaping behavior.
 | 
					
						
							|  |  |  | -   Flask will now raise an error if you attempt to register a new
 | 
					
						
							|  |  |  |     function on an already used endpoint.
 | 
					
						
							|  |  |  | -   Added wrapper module around simplejson and added default
 | 
					
						
							|  |  |  |     serialization of datetime objects. This allows much easier
 | 
					
						
							|  |  |  |     customization of how JSON is handled by Flask or any Flask
 | 
					
						
							|  |  |  |     extension.
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  | -   Removed deprecated internal ``flask.session`` module alias. Use
 | 
					
						
							|  |  |  |     ``flask.sessions`` instead to get the session module. This is not to
 | 
					
						
							|  |  |  |     be confused with ``flask.session`` the session proxy.
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  | -   Templates can now be rendered without request context. The behavior
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  |     is slightly different as the ``request``, ``session`` and ``g``
 | 
					
						
							|  |  |  |     objects will not be available and blueprint's context processors are
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  |     not called.
 | 
					
						
							|  |  |  | -   The config object is now available to the template as a real global
 | 
					
						
							|  |  |  |     and not through a context processor which makes it available even in
 | 
					
						
							|  |  |  |     imported templates by default.
 | 
					
						
							|  |  |  | -   Added an option to generate non-ascii encoded JSON which should
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  |     result in less bytes being transmitted over the network. It's
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  |     disabled by default to not cause confusion with existing libraries
 | 
					
						
							| 
									
										
										
										
											2020-04-04 02:58:16 +08:00
										 |  |  |     that might expect ``flask.json.dumps`` to return bytes by default.
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  | -   ``flask.g`` is now stored on the app context instead of the request
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  |     context.
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  | -   ``flask.g`` now gained a ``get()`` method for not erroring out on
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  |     non existing items.
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  | -   ``flask.g`` now can be used with the ``in`` operator to see what's
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  |     defined and it now is iterable and will yield all attributes stored.
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  | -   ``flask.Flask.request_globals_class`` got renamed to
 | 
					
						
							|  |  |  |     ``flask.Flask.app_ctx_globals_class`` which is a better name to what
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  |     it does since 0.10.
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  | -   ``request``, ``session`` and ``g`` are now also added as proxies to
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  |     the template context which makes them available in imported
 | 
					
						
							|  |  |  |     templates. One has to be very careful with those though because
 | 
					
						
							|  |  |  |     usage outside of macros might cause caching.
 | 
					
						
							|  |  |  | -   Flask will no longer invoke the wrong error handlers if a proxy
 | 
					
						
							|  |  |  |     exception is passed through.
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  | -   Added a workaround for chrome's cookies in localhost not working as
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  |     intended with domain names.
 | 
					
						
							|  |  |  | -   Changed logic for picking defaults for cookie values from sessions
 | 
					
						
							|  |  |  |     to work better with Google Chrome.
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  | -   Added ``message_flashed`` signal that simplifies flashing testing.
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  | -   Added support for copying of request contexts for better working
 | 
					
						
							|  |  |  |     with greenlets.
 | 
					
						
							|  |  |  | -   Removed custom JSON HTTP exception subclasses. If you were relying
 | 
					
						
							|  |  |  |     on them you can reintroduce them again yourself trivially. Using
 | 
					
						
							|  |  |  |     them however is strongly discouraged as the interface was flawed.
 | 
					
						
							|  |  |  | -   Python requirements changed: requiring Python 2.6 or 2.7 now to
 | 
					
						
							|  |  |  |     prepare for Python 3.3 port.
 | 
					
						
							|  |  |  | -   Changed how the teardown system is informed about exceptions. This
 | 
					
						
							|  |  |  |     is now more reliable in case something handles an exception halfway
 | 
					
						
							|  |  |  |     through the error handling process.
 | 
					
						
							|  |  |  | -   Request context preservation in debug mode now keeps the exception
 | 
					
						
							|  |  |  |     information around which means that teardown handlers are able to
 | 
					
						
							|  |  |  |     distinguish error from success cases.
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  | -   Added the ``JSONIFY_PRETTYPRINT_REGULAR`` configuration variable.
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  | -   Flask now orders JSON keys by default to not trash HTTP caches due
 | 
					
						
							|  |  |  |     to different hash seeds between different workers.
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  | -   Added ``appcontext_pushed`` and ``appcontext_popped`` signals.
 | 
					
						
							|  |  |  | -   The builtin run method now takes the ``SERVER_NAME`` into account
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  |     when picking the default port to run on.
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  | -   Added ``flask.request.get_json()`` as a replacement for the old
 | 
					
						
							|  |  |  |     ``flask.request.json`` property.
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-08-11 09:36:14 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-30 05:36:57 +08:00
										 |  |  | Version 0.9
 | 
					
						
							|  |  |  | -----------
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  | Released 2012-07-01, codename Campari
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-07-25 10:35:44 +08:00
										 |  |  | -   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.
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  | -   Logger now only returns the debug log setting if it was not set
 | 
					
						
							|  |  |  |     explicitly.
 | 
					
						
							|  |  |  | -   Unregister a circular dependency between the WSGI environment and
 | 
					
						
							|  |  |  |     the request object when shutting down the request. This means that
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  |     environ ``werkzeug.request`` will be ``None`` after the response was
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  |     returned to the WSGI server but has the advantage that the garbage
 | 
					
						
							|  |  |  |     collector is not needed on CPython to tear down the request unless
 | 
					
						
							|  |  |  |     the user created circular dependencies themselves.
 | 
					
						
							|  |  |  | -   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.
 | 
					
						
							| 
									
										
										
										
											2022-07-25 10:35:44 +08:00
										 |  |  | -   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.
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  | -   Blueprints now have a decorator to add custom template filters
 | 
					
						
							| 
									
										
										
										
											2022-07-25 10:35:44 +08:00
										 |  |  |     application wide, ``Blueprint.app_template_filter``.
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  | -   The Flask and Blueprint classes now have a non-decorator method for
 | 
					
						
							|  |  |  |     adding custom template filters application wide,
 | 
					
						
							| 
									
										
										
										
											2022-07-25 10:35:44 +08:00
										 |  |  |     ``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.
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  |     ``app.run(app.config.get('MYHOST'), app.config.get('MYPORT'))``,
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  |     with proper behavior whether or not a config file is provided.
 | 
					
						
							| 
									
										
										
										
											2022-07-25 10:35:44 +08:00
										 |  |  | -   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.
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  | -   View functions can now return a tuple with the first instance being
 | 
					
						
							| 
									
										
										
										
											2022-07-25 10:35:44 +08:00
										 |  |  |     an instance of ``Response``. This allows for returning
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  |     ``jsonify(error="error msg"), 400`` from a view function.
 | 
					
						
							| 
									
										
										
										
											2022-07-25 10:35:44 +08:00
										 |  |  | -   ``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
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  |     provided a filename, which for example allows changing cache
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  |     controls by file extension. The default max-age for ``send_file``
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  |     and static files can be configured through a new
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  |     ``SEND_FILE_MAX_AGE_DEFAULT`` configuration variable, which is used
 | 
					
						
							|  |  |  |     in the default ``get_send_file_max_age`` implementation.
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  | -   Fixed an assumption in sessions implementation which could break
 | 
					
						
							|  |  |  |     message flashing on sessions implementations which use external
 | 
					
						
							|  |  |  |     storage.
 | 
					
						
							|  |  |  | -   Changed the behavior of tuple return values from functions. They are
 | 
					
						
							|  |  |  |     no longer arguments to the response object, they now have a defined
 | 
					
						
							|  |  |  |     meaning.
 | 
					
						
							| 
									
										
										
										
											2022-07-25 10:35:44 +08:00
										 |  |  | -   Added ``Flask.request_globals_class`` to allow a specific class to
 | 
					
						
							|  |  |  |     be used on creation of the ``g`` instance of each request.
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  | -   Added ``required_methods`` attribute to view functions to force-add
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  |     methods on registration.
 | 
					
						
							| 
									
										
										
										
											2022-07-25 10:35:44 +08:00
										 |  |  | -   Added ``flask.after_this_request``.
 | 
					
						
							|  |  |  | -   Added ``flask.stream_with_context`` and the ability to push contexts
 | 
					
						
							|  |  |  |     multiple times without producing unexpected behavior.
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-10-06 22:57:03 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-10-02 07:06:22 +08:00
										 |  |  | Version 0.8.1
 | 
					
						
							|  |  |  | -------------
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  | Released 2012-07-01
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  | -   Fixed an issue with the undocumented ``flask.session`` module to not
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  |     work properly on Python 2.5. It should not be used but did cause
 | 
					
						
							|  |  |  |     some problems for package managers.
 | 
					
						
							| 
									
										
										
										
											2011-10-02 07:06:22 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-10-02 07:08:54 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-07-07 17:26:53 +08:00
										 |  |  | Version 0.8
 | 
					
						
							|  |  |  | -----------
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  | Released 2011-09-29, codename Rakija
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | -   Refactored session support into a session interface so that the
 | 
					
						
							|  |  |  |     implementation of the sessions can be changed without having to
 | 
					
						
							|  |  |  |     override the Flask class.
 | 
					
						
							|  |  |  | -   Empty session cookies are now deleted properly automatically.
 | 
					
						
							|  |  |  | -   View functions can now opt out of getting the automatic OPTIONS
 | 
					
						
							|  |  |  |     implementation.
 | 
					
						
							|  |  |  | -   HTTP exceptions and Bad Request errors can now be trapped so that
 | 
					
						
							|  |  |  |     they show up normally in the traceback.
 | 
					
						
							|  |  |  | -   Flask in debug mode is now detecting some common problems and tries
 | 
					
						
							|  |  |  |     to warn you about them.
 | 
					
						
							|  |  |  | -   Flask in debug mode will now complain with an assertion error if a
 | 
					
						
							|  |  |  |     view was attached after the first request was handled. This gives
 | 
					
						
							|  |  |  |     earlier feedback when users forget to import view code ahead of
 | 
					
						
							|  |  |  |     time.
 | 
					
						
							|  |  |  | -   Added the ability to register callbacks that are only triggered once
 | 
					
						
							| 
									
										
										
										
											2022-07-25 10:35:44 +08:00
										 |  |  |     at the beginning of the first request with
 | 
					
						
							|  |  |  |     ``Flask.before_first_request``.
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  | -   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
 | 
					
						
							|  |  |  |     incompatible change.
 | 
					
						
							|  |  |  | -   Applications now not only have a root path where the resources and
 | 
					
						
							|  |  |  |     modules are located but also an instance path which is the
 | 
					
						
							|  |  |  |     designated place to drop files that are modified at runtime (uploads
 | 
					
						
							|  |  |  |     etc.). Also this is conceptually only instance depending and outside
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  |     version control so it's the perfect place to put configuration files
 | 
					
						
							| 
									
										
										
										
											2020-04-04 02:58:16 +08:00
										 |  |  |     etc.
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  | -   Added the ``APPLICATION_ROOT`` configuration variable.
 | 
					
						
							| 
									
										
										
										
											2022-07-25 10:35:44 +08:00
										 |  |  | -   Implemented ``TestClient.session_transaction`` to easily modify
 | 
					
						
							|  |  |  |     sessions from the test environment.
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  | -   Refactored test client internally. The ``APPLICATION_ROOT``
 | 
					
						
							|  |  |  |     configuration variable as well as ``SERVER_NAME`` are now properly
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  |     used by the test client as defaults.
 | 
					
						
							| 
									
										
										
										
											2022-07-25 10:35:44 +08:00
										 |  |  | -   Added ``View.decorators`` to support simpler decorating of pluggable
 | 
					
						
							|  |  |  |     (class-based) views.
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  | -   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
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  |     ``get`` method if no handler was implemented.
 | 
					
						
							| 
									
										
										
										
											2022-07-25 10:35:44 +08:00
										 |  |  | -   Implemented the virtual ``flask.ext`` package to import extensions
 | 
					
						
							|  |  |  |     from.
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  | -   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
 | 
					
						
							|  |  |  |     in unittests.
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  | -   Fixed the Jinja2 environment's ``list_templates`` method not
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  |     returning the correct names when blueprints or modules were
 | 
					
						
							|  |  |  |     involved.
 | 
					
						
							| 
									
										
										
										
											2011-07-16 07:16:03 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-07-06 16:18:03 +08:00
										 |  |  | Version 0.7.2
 | 
					
						
							|  |  |  | -------------
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  | Released 2011-07-06
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | -   Fixed an issue with URL processors not properly working on
 | 
					
						
							|  |  |  |     blueprints.
 | 
					
						
							| 
									
										
										
										
											2011-07-06 16:18:03 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-06-29 05:36:39 +08:00
										 |  |  | Version 0.7.1
 | 
					
						
							|  |  |  | -------------
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  | Released 2011-06-29
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | -   Added missing future import that broke 2.5 compatibility.
 | 
					
						
							|  |  |  | -   Fixed an infinite redirect issue with blueprints.
 | 
					
						
							| 
									
										
										
										
											2011-06-29 05:36:39 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-07-27 20:40:21 +08:00
										 |  |  | Version 0.7
 | 
					
						
							|  |  |  | -----------
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  | Released 2011-06-28, codename Grappa
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-07-25 10:35:44 +08:00
										 |  |  | -   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``.
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  | -   Mimetype guessing and etag support based on file objects is now
 | 
					
						
							| 
									
										
										
										
											2022-07-25 10:35:44 +08:00
										 |  |  |     deprecated for ``send_file`` because it was unreliable. Pass
 | 
					
						
							|  |  |  |     filenames instead or attach your own etags and provide a proper
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  |     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
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  |     reliable and caused issues on Google's App Engine. Until 1.0 the old
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  |     behavior will continue to work but issue dependency warnings.
 | 
					
						
							|  |  |  | -   Fixed a problem for Flask to run on jython.
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  | -   Added a ``PROPAGATE_EXCEPTIONS`` configuration variable that can be
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  |     used to flip the setting of exception propagation which previously
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  |     was linked to ``DEBUG`` alone and is now linked to either ``DEBUG``
 | 
					
						
							|  |  |  |     or ``TESTING``.
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  | -   Flask no longer internally depends on rules being added through the
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  |     ``add_url_rule`` function and can now also accept regular werkzeug
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  |     rules added to the url map.
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  | -   Added an ``endpoint`` method to the flask application object which
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  |     allows one to register a callback to an arbitrary endpoint with a
 | 
					
						
							|  |  |  |     decorator.
 | 
					
						
							|  |  |  | -   Use Last-Modified for static file sending instead of Date which was
 | 
					
						
							|  |  |  |     incorrectly introduced in 0.6.
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  | -   Added ``create_jinja_loader`` to override the loader creation
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  |     process.
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  | -   Implemented a silent flag for ``config.from_pyfile``.
 | 
					
						
							|  |  |  | -   Added ``teardown_request`` decorator, for functions that should run
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  |     at the end of a request regardless of whether an exception occurred.
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  |     Also the behavior for ``after_request`` was changed. It's now no
 | 
					
						
							| 
									
										
										
										
											2020-04-04 02:58:16 +08:00
										 |  |  |     longer executed when an exception is raised.
 | 
					
						
							| 
									
										
										
										
											2022-07-25 10:35:44 +08:00
										 |  |  | -   Implemented ``has_request_context``.
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  | -   Deprecated ``init_jinja_globals``. Override the
 | 
					
						
							| 
									
										
										
										
											2022-07-25 10:35:44 +08:00
										 |  |  |     ``Flask.create_jinja_environment`` method instead to achieve the
 | 
					
						
							|  |  |  |     same functionality.
 | 
					
						
							|  |  |  | -   Added ``safe_join``.
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  | -   The automatic JSON request data unpacking now looks at the charset
 | 
					
						
							|  |  |  |     mimetype parameter.
 | 
					
						
							| 
									
										
										
										
											2022-07-25 10:35:44 +08:00
										 |  |  | -   Don't modify the session on ``get_flashed_messages`` if there are no
 | 
					
						
							|  |  |  |     messages in the session.
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  | -   ``before_request`` handlers are now able to abort requests with
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  |     errors.
 | 
					
						
							|  |  |  | -   It is not possible to define user exception handlers. That way you
 | 
					
						
							|  |  |  |     can provide custom error messages from a central hub for certain
 | 
					
						
							|  |  |  |     errors that might occur during request processing (for instance
 | 
					
						
							|  |  |  |     database connection errors, timeouts from remote resources etc.).
 | 
					
						
							|  |  |  | -   Blueprints can provide blueprint specific error handlers.
 | 
					
						
							| 
									
										
										
										
											2020-04-04 02:58:16 +08:00
										 |  |  | -   Implemented generic class-based views.
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-07-28 07:39:25 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-07-28 07:26:15 +08:00
										 |  |  | Version 0.6.1
 | 
					
						
							|  |  |  | -------------
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  | Released 2010-12-31
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  | -   Fixed an issue where the default ``OPTIONS`` response was not
 | 
					
						
							|  |  |  |     exposing all valid methods in the ``Allow`` header.
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  | -   Jinja2 template loading syntax now allows "./" in front of a
 | 
					
						
							|  |  |  |     template load path. Previously this caused issues with module
 | 
					
						
							|  |  |  |     setups.
 | 
					
						
							|  |  |  | -   Fixed an issue where the subdomain setting for modules was ignored
 | 
					
						
							|  |  |  |     for the static folder.
 | 
					
						
							|  |  |  | -   Fixed a security problem that allowed clients to download arbitrary
 | 
					
						
							|  |  |  |     files if the host server was a windows based operating system and
 | 
					
						
							|  |  |  |     the client uses backslashes to escape the directory the files where
 | 
					
						
							|  |  |  |     exposed from.
 | 
					
						
							| 
									
										
										
										
											2010-07-27 20:40:21 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-07-28 07:25:08 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-07-06 22:28:47 +08:00
										 |  |  | Version 0.6
 | 
					
						
							|  |  |  | -----------
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  | Released 2010-07-27, codename Whisky
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | -   After request functions are now called in reverse order of
 | 
					
						
							|  |  |  |     registration.
 | 
					
						
							|  |  |  | -   OPTIONS is now automatically implemented by Flask unless the
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  |     application explicitly adds 'OPTIONS' as method to the URL rule. In
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  |     this case no automatic OPTIONS handling kicks in.
 | 
					
						
							|  |  |  | -   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
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  |     static folder if it's part of a mapping in the .yml file.
 | 
					
						
							| 
									
										
										
										
											2022-07-25 10:35:44 +08:00
										 |  |  | -   ``Flask.config`` is now available in the templates as ``config``.
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  | -   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
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  |     ``MAX_CONTENT_LENGTH`` configuration value.
 | 
					
						
							| 
									
										
										
										
											2022-07-25 10:35:44 +08:00
										 |  |  | -   The endpoint for the ``Module.add_url_rule`` method is now optional
 | 
					
						
							|  |  |  |     to be consistent with the function of the same name on the
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  |     application object.
 | 
					
						
							| 
									
										
										
										
											2022-07-25 10:35:44 +08:00
										 |  |  | -   Added a ``make_response`` function that simplifies creating response
 | 
					
						
							|  |  |  |     object instances in views.
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  | -   Added signalling support based on blinker. This feature is currently
 | 
					
						
							|  |  |  |     optional and supposed to be used by extensions and applications. If
 | 
					
						
							| 
									
										
										
										
											2022-07-25 10:35:44 +08:00
										 |  |  |     you want to use it, make sure to have ``blinker`` installed.
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  | -   Refactored the way URL adapters are created. This process is now
 | 
					
						
							| 
									
										
										
										
											2022-07-25 10:35:44 +08:00
										 |  |  |     fully customizable with the ``Flask.create_url_adapter`` method.
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  | -   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.
 | 
					
						
							| 
									
										
										
										
											2010-07-17 20:39:28 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-07-16 02:03:58 +08:00
										 |  |  | Version 0.5.2
 | 
					
						
							|  |  |  | -------------
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  | Released 2010-07-15
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | -   Fixed another issue with loading templates from directories when
 | 
					
						
							|  |  |  |     modules were used.
 | 
					
						
							| 
									
										
										
										
											2010-07-16 02:03:58 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-07-07 01:11:51 +08:00
										 |  |  | Version 0.5.1
 | 
					
						
							|  |  |  | -------------
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  | Released 2010-07-06
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | -   Fixes an issue with template loading from directories when modules
 | 
					
						
							|  |  |  |     where used.
 | 
					
						
							| 
									
										
										
										
											2010-07-07 01:11:51 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-06-18 23:14:43 +08:00
										 |  |  | Version 0.5
 | 
					
						
							|  |  |  | -----------
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  | Released 2010-07-06, codename Calvados
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | -   Fixed a bug with subdomains that was caused by the inability to
 | 
					
						
							|  |  |  |     specify the server name. The server name can now be set with the
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  |     ``SERVER_NAME`` config key. This key is now also used to set the
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  |     session cookie cross-subdomain wide.
 | 
					
						
							|  |  |  | -   Autoescaping is no longer active for all templates. Instead it is
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  |     only active for ``.html``, ``.htm``, ``.xml`` and ``.xhtml``. Inside
 | 
					
						
							|  |  |  |     templates this behavior can be changed with the ``autoescape`` tag.
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  | -   Refactored Flask internally. It now consists of more than a single
 | 
					
						
							|  |  |  |     file.
 | 
					
						
							| 
									
										
										
										
											2022-07-25 10:35:44 +08:00
										 |  |  | -   ``send_file`` now emits etags and has the ability to do conditional
 | 
					
						
							|  |  |  |     responses builtin.
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  | -   (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.
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  | -   Removed support for ``create_jinja_loader`` which is no longer used
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  |     in 0.5 due to the improved module support.
 | 
					
						
							|  |  |  | -   Added a helper function to expose files from any directory.
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-06-29 07:13:40 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-05-28 07:25:19 +08:00
										 |  |  | Version 0.4
 | 
					
						
							|  |  |  | -----------
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  | Released 2010-06-18, codename Rakia
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | -   Added the ability to register application wide error handlers from
 | 
					
						
							|  |  |  |     modules.
 | 
					
						
							| 
									
										
										
										
											2022-07-25 10:35:44 +08:00
										 |  |  | -   ``Flask.after_request`` handlers are now also invoked if the request
 | 
					
						
							|  |  |  |     dies with an exception and an error handling page kicks in.
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  | -   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.
 | 
					
						
							|  |  |  | -   Because the Python standard library caches loggers, the name of the
 | 
					
						
							|  |  |  |     logger is configurable now to better support unittests.
 | 
					
						
							| 
									
										
										
										
											2019-07-01 22:36:20 +08:00
										 |  |  | -   Added ``TESTING`` switch that can activate unittesting helpers.
 | 
					
						
							|  |  |  | -   The logger switches to ``DEBUG`` mode now if debug is enabled.
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-05-31 23:38:05 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-05-29 03:06:39 +08:00
										 |  |  | Version 0.3.1
 | 
					
						
							|  |  |  | -------------
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  | Released 2010-05-28
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-07-25 10:35:44 +08:00
										 |  |  | -   Fixed a error reporting bug with ``Config.from_envvar``.
 | 
					
						
							|  |  |  | -   Removed some unused code.
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  | -   Release does no longer include development leftover files (.git
 | 
					
						
							|  |  |  |     folder for themes, built documentation in zip and pdf file and some
 | 
					
						
							|  |  |  |     .pyc files)
 | 
					
						
							| 
									
										
										
										
											2010-05-29 03:06:39 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-05-28 07:18:29 +08:00
										 |  |  | Version 0.3
 | 
					
						
							| 
									
										
										
										
											2010-05-12 07:32:29 +08:00
										 |  |  | -----------
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  | Released 2010-05-28, codename Schnaps
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | -   Added support for categories for flashed messages.
 | 
					
						
							| 
									
										
										
										
											2022-07-25 10:35:44 +08:00
										 |  |  | -   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
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  |     example.
 | 
					
						
							|  |  |  | -   Added support for context binding that does not require the use of
 | 
					
						
							|  |  |  |     the with statement for playing in the console.
 | 
					
						
							|  |  |  | -   The request context is now available within the with statement
 | 
					
						
							|  |  |  |     making it possible to further push the request context or pop it.
 | 
					
						
							|  |  |  | -   Added support for configurations.
 | 
					
						
							| 
									
										
										
										
											2010-05-12 07:32:29 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-05-17 06:37:55 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-04-21 02:21:01 +08:00
										 |  |  | Version 0.2
 | 
					
						
							|  |  |  | -----------
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-06-27 05:46:10 +08:00
										 |  |  | Released 2010-05-12, codename J?germeister
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | -   Various bugfixes
 | 
					
						
							|  |  |  | -   Integrated JSON support
 | 
					
						
							| 
									
										
										
										
											2022-07-25 10:35:44 +08:00
										 |  |  | -   Added ``get_template_attribute`` helper function.
 | 
					
						
							|  |  |  | -   ``Flask.add_url_rule`` can now also register a view function.
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  | -   Refactored internal request dispatching.
 | 
					
						
							|  |  |  | -   Server listens on 127.0.0.1 by default now to fix issues with
 | 
					
						
							|  |  |  |     chrome.
 | 
					
						
							|  |  |  | -   Added external URL support.
 | 
					
						
							| 
									
										
										
										
											2022-07-25 10:35:44 +08:00
										 |  |  | -   Added support for ``send_file``.
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  | -   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.
 | 
					
						
							|  |  |  | -   Better error reporting on missing secret keys.
 | 
					
						
							|  |  |  | -   Added support for Google Appengine.
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-04-21 02:21:01 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | Version 0.1
 | 
					
						
							|  |  |  | -----------
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-06-24 03:21:31 +08:00
										 |  |  | Released 2010-04-16
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | -   First public preview release.
 |