| 
									
										
										
										
											2018-02-07 22:56:14 +08:00
										 |  |  | .. currentmodule:: flask
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-04-21 02:21:01 +08:00
										 |  |  | Flask Changelog
 | 
					
						
							|  |  |  | ===============
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-01-24 07:34:52 +08:00
										 |  |  | Version 1.0
 | 
					
						
							|  |  |  | -----------
 | 
					
						
							| 
									
										
										
										
											2018-01-05 23:40:51 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-04-27 03:22:45 +08:00
										 |  |  | Released on April 26th 2018
 | 
					
						
							| 
									
										
										
										
											2016-12-31 05:28:43 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-04-19 14:03:17 +08:00
										 |  |  | -   **Python 2.6 and 3.3 are no longer supported.** (`pallets/meta#24`_)
 | 
					
						
							|  |  |  | -   Bump minimum dependency versions to the latest stable versions:
 | 
					
						
							|  |  |  |     Werkzeug >= 0.14, Jinja >= 2.10, itsdangerous >= 0.24, Click >= 5.1.
 | 
					
						
							|  |  |  |     (`#2586`_)
 | 
					
						
							|  |  |  | -   Skip :meth:`app.run <Flask.run>` when a Flask application is run
 | 
					
						
							|  |  |  |     from the command line. This avoids some behavior that was confusing
 | 
					
						
							|  |  |  |     to debug.
 | 
					
						
							|  |  |  | -   Change the default for :data:`JSONIFY_PRETTYPRINT_REGULAR` to
 | 
					
						
							|  |  |  |     ``False``. :func:`~json.jsonify` returns a compact format by
 | 
					
						
							|  |  |  |     default, and an indented format in debug mode. (`#2193`_)
 | 
					
						
							|  |  |  | -   :meth:`Flask.__init__ <Flask>` accepts the ``host_matching``
 | 
					
						
							|  |  |  |     argument and sets it on :attr:`~Flask.url_map`. (`#1559`_)
 | 
					
						
							|  |  |  | -   :meth:`Flask.__init__ <Flask>` accepts the ``static_host`` argument
 | 
					
						
							|  |  |  |     and passes it as the ``host`` argument when defining the static
 | 
					
						
							|  |  |  |     route. (`#1559`_)
 | 
					
						
							|  |  |  | -   :func:`send_file` supports Unicode in ``attachment_filename``.
 | 
					
						
							|  |  |  |     (`#2223`_)
 | 
					
						
							|  |  |  | -   Pass ``_scheme`` argument from :func:`url_for` to
 | 
					
						
							|  |  |  |     :meth:`~Flask.handle_url_build_error`. (`#2017`_)
 | 
					
						
							|  |  |  | -   :meth:`~Flask.add_url_rule` accepts the
 | 
					
						
							|  |  |  |     ``provide_automatic_options`` argument to disable adding the
 | 
					
						
							|  |  |  |     ``OPTIONS`` method. (`#1489`_)
 | 
					
						
							|  |  |  | -   :class:`~views.MethodView` subclasses inherit method handlers from
 | 
					
						
							|  |  |  |     base classes. (`#1936`_)
 | 
					
						
							|  |  |  | -   Errors caused while opening the session at the beginning of the
 | 
					
						
							|  |  |  |     request are handled by the app's error handlers. (`#2254`_)
 | 
					
						
							|  |  |  | -   Blueprints gained :attr:`~Blueprint.json_encoder` and
 | 
					
						
							|  |  |  |     :attr:`~Blueprint.json_decoder` attributes to override the app's
 | 
					
						
							|  |  |  |     encoder and decoder. (`#1898`_)
 | 
					
						
							|  |  |  | -   :meth:`Flask.make_response` raises ``TypeError`` instead of
 | 
					
						
							|  |  |  |     ``ValueError`` for bad response types. The error messages have been
 | 
					
						
							|  |  |  |     improved to describe why the type is invalid. (`#2256`_)
 | 
					
						
							|  |  |  | -   Add ``routes`` CLI command to output routes registered on the
 | 
					
						
							|  |  |  |     application. (`#2259`_)
 | 
					
						
							|  |  |  | -   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
 | 
					
						
							|  |  |  |     Chrome. (`#2282`_)
 | 
					
						
							|  |  |  | -   Allow IP address as exact session cookie domain. (`#2282`_)
 | 
					
						
							|  |  |  | -   ``SESSION_COOKIE_DOMAIN`` is set if it is detected through
 | 
					
						
							|  |  |  |     ``SERVER_NAME``. (`#2282`_)
 | 
					
						
							|  |  |  | -   Auto-detect zero-argument app factory called ``create_app`` or
 | 
					
						
							|  |  |  |     ``make_app`` from ``FLASK_APP``. (`#2297`_)
 | 
					
						
							|  |  |  | -   Factory functions are not required to take a ``script_info``
 | 
					
						
							|  |  |  |     parameter to work with the ``flask`` command. If they take a single
 | 
					
						
							|  |  |  |     parameter or a parameter named ``script_info``, the
 | 
					
						
							|  |  |  |     :class:`~cli.ScriptInfo` object will be passed. (`#2319`_)
 | 
					
						
							|  |  |  | -   ``FLASK_APP`` can be set to an app factory, with arguments if
 | 
					
						
							|  |  |  |     needed, for example ``FLASK_APP=myproject.app:create_app('dev')``.
 | 
					
						
							|  |  |  |     (`#2326`_)
 | 
					
						
							|  |  |  | -   ``FLASK_APP`` can point to local packages that are not installed in
 | 
					
						
							|  |  |  |     editable mode, although ``pip install -e`` is still preferred.
 | 
					
						
							|  |  |  |     (`#2414`_)
 | 
					
						
							|  |  |  | -   The :class:`~views.View` class attribute
 | 
					
						
							|  |  |  |     :attr:`~views.View.provide_automatic_options` is set in
 | 
					
						
							|  |  |  |     :meth:`~views.View.as_view`, to be detected by
 | 
					
						
							|  |  |  |     :meth:`~Flask.add_url_rule`. (`#2316`_)
 | 
					
						
							|  |  |  | -   Error handling will try handlers registered for ``blueprint, code``,
 | 
					
						
							|  |  |  |     ``app, code``, ``blueprint, exception``, ``app, exception``.
 | 
					
						
							|  |  |  |     (`#2314`_)
 | 
					
						
							|  |  |  | -   ``Cookie`` is added to the response's ``Vary`` header if the session
 | 
					
						
							|  |  |  |     is accessed at all during the request (and not deleted). (`#2288`_)
 | 
					
						
							|  |  |  | -   :meth:`~Flask.test_request_context` accepts ``subdomain`` and
 | 
					
						
							|  |  |  |     ``url_scheme`` arguments for use when building the base URL.
 | 
					
						
							|  |  |  |     (`#1621`_)
 | 
					
						
							|  |  |  | -   Set :data:`APPLICATION_ROOT` to ``'/'`` by default. This was already
 | 
					
						
							|  |  |  |     the implicit default when it was set to ``None``.
 | 
					
						
							|  |  |  | -   :data:`TRAP_BAD_REQUEST_ERRORS` is enabled by default in debug mode.
 | 
					
						
							|  |  |  |     ``BadRequestKeyError`` has a message with the bad key in debug mode
 | 
					
						
							|  |  |  |     instead of the generic bad request message. (`#2348`_)
 | 
					
						
							|  |  |  | -   Allow registering new tags with
 | 
					
						
							|  |  |  |     :class:`~json.tag.TaggedJSONSerializer` to support storing other
 | 
					
						
							|  |  |  |     types in the session cookie. (`#2352`_)
 | 
					
						
							|  |  |  | -   Only open the session if the request has not been pushed onto the
 | 
					
						
							|  |  |  |     context stack yet. This allows :func:`~stream_with_context`
 | 
					
						
							|  |  |  |     generators to access the same session that the containing view uses.
 | 
					
						
							|  |  |  |     (`#2354`_)
 | 
					
						
							|  |  |  | -   Add ``json`` keyword argument for the test client request methods.
 | 
					
						
							|  |  |  |     This will dump the given object as JSON and set the appropriate
 | 
					
						
							|  |  |  |     content type. (`#2358`_)
 | 
					
						
							|  |  |  | -   Extract JSON handling to a mixin applied to both the
 | 
					
						
							|  |  |  |     :class:`Request` and :class:`Response` classes. This adds the
 | 
					
						
							|  |  |  |     :meth:`~Response.is_json` and :meth:`~Response.get_json` methods to
 | 
					
						
							|  |  |  |     the response to make testing JSON response much easier. (`#2358`_)
 | 
					
						
							|  |  |  | -   Removed error handler caching because it caused unexpected results
 | 
					
						
							|  |  |  |     for some exception inheritance hierarchies. Register handlers
 | 
					
						
							|  |  |  |     explicitly for each exception if you want to avoid traversing the
 | 
					
						
							|  |  |  |     MRO. (`#2362`_)
 | 
					
						
							|  |  |  | -   Fix incorrect JSON encoding of aware, non-UTC datetimes. (`#2374`_)
 | 
					
						
							|  |  |  | -   Template auto reloading will honor debug mode even even if
 | 
					
						
							|  |  |  |     :attr:`~Flask.jinja_env` was already accessed. (`#2373`_)
 | 
					
						
							|  |  |  | -   The following old deprecated code was removed. (`#2385`_)
 | 
					
						
							| 
									
										
										
										
											2017-06-26 23:07:54 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-04-19 14:03:17 +08:00
										 |  |  |     -   ``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
 | 
					
						
							|  |  |  |         :meth:`Flask.create_jinja_environment` instead.
 | 
					
						
							|  |  |  |     -   ``Flask.error_handlers`` - tracked by
 | 
					
						
							|  |  |  |         :attr:`Flask.error_handler_spec`, use :meth:`Flask.errorhandler`
 | 
					
						
							|  |  |  |         to register handlers.
 | 
					
						
							|  |  |  |     -   ``Flask.request_globals_class`` - use
 | 
					
						
							|  |  |  |         :attr:`Flask.app_ctx_globals_class` instead.
 | 
					
						
							|  |  |  |     -   ``Flask.static_path`` - use :attr:`Flask.static_url_path`
 | 
					
						
							|  |  |  |         instead.
 | 
					
						
							|  |  |  |     -   ``Request.module`` - use :attr:`Request.blueprint` instead.
 | 
					
						
							| 
									
										
										
										
											2017-04-07 22:31:54 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-04-19 14:03:17 +08:00
										 |  |  | -   The :attr:`Request.json` property is no longer deprecated.
 | 
					
						
							|  |  |  |     (`#1421`_)
 | 
					
						
							|  |  |  | -   Support passing a :class:`~werkzeug.test.EnvironBuilder` or
 | 
					
						
							|  |  |  |     ``dict`` to :meth:`test_client.open <werkzeug.test.Client.open>`.
 | 
					
						
							|  |  |  |     (`#2412`_)
 | 
					
						
							|  |  |  | -   The ``flask`` command and :meth:`Flask.run` will load environment
 | 
					
						
							|  |  |  |     variables from ``.env`` and ``.flaskenv`` files if python-dotenv is
 | 
					
						
							|  |  |  |     installed. (`#2416`_)
 | 
					
						
							|  |  |  | -   When passing a full URL to the test client, the scheme in the URL is
 | 
					
						
							|  |  |  |     used instead of :data:`PREFERRED_URL_SCHEME`. (`#2430`_)
 | 
					
						
							|  |  |  | -   :attr:`Flask.logger` has been simplified. ``LOGGER_NAME`` and
 | 
					
						
							|  |  |  |     ``LOGGER_HANDLER_POLICY`` config was removed. The logger is always
 | 
					
						
							|  |  |  |     named ``flask.app``. The level is only set on first access, it
 | 
					
						
							|  |  |  |     doesn't check :attr:`Flask.debug` each time. Only one format is
 | 
					
						
							|  |  |  |     used, not different ones depending on :attr:`Flask.debug`. No
 | 
					
						
							|  |  |  |     handlers are removed, and a handler is only added if no handlers are
 | 
					
						
							|  |  |  |     already configured. (`#2436`_)
 | 
					
						
							|  |  |  | -   Blueprint view function names may not contain dots. (`#2450`_)
 | 
					
						
							|  |  |  | -   Fix a ``ValueError`` caused by invalid ``Range`` requests in some
 | 
					
						
							|  |  |  |     cases. (`#2526`_)
 | 
					
						
							|  |  |  | -   The development server uses threads by default. (`#2529`_)
 | 
					
						
							|  |  |  | -   Loading config files with ``silent=True`` will ignore
 | 
					
						
							|  |  |  |     :data:`~errno.ENOTDIR` errors. (`#2581`_)
 | 
					
						
							|  |  |  | -   Pass ``--cert`` and ``--key`` options to ``flask run`` to run the
 | 
					
						
							|  |  |  |     development server over HTTPS. (`#2606`_)
 | 
					
						
							|  |  |  | -   Added :data:`SESSION_COOKIE_SAMESITE` to control the ``SameSite``
 | 
					
						
							|  |  |  |     attribute on the session cookie. (`#2607`_)
 | 
					
						
							|  |  |  | -   Added :meth:`~flask.Flask.test_cli_runner` to create a Click runner
 | 
					
						
							|  |  |  |     that can invoke Flask CLI commands for testing. (`#2636`_)
 | 
					
						
							|  |  |  | -   Subdomain matching is disabled by default and setting
 | 
					
						
							|  |  |  |     :data:`SERVER_NAME` does not implicily enable it. It can be enabled
 | 
					
						
							|  |  |  |     by passing ``subdomain_matching=True`` to the ``Flask`` constructor.
 | 
					
						
							|  |  |  |     (`#2635`_)
 | 
					
						
							|  |  |  | -   A single trailing slash is stripped from the blueprint
 | 
					
						
							|  |  |  |     ``url_prefix`` when it is registered with the app. (`#2629`_)
 | 
					
						
							|  |  |  | -   :meth:`Request.get_json` doesn't cache the
 | 
					
						
							|  |  |  |     result if parsing fails when ``silent`` is true. (`#2651`_)
 | 
					
						
							|  |  |  | -   :func:`Request.get_json` no longer accepts arbitrary encodings.
 | 
					
						
							|  |  |  |     Incoming JSON should be encoded using UTF-8 per :rfc:`8259`, but
 | 
					
						
							|  |  |  |     Flask will autodetect UTF-8, -16, or -32. (`#2691`_)
 | 
					
						
							|  |  |  | -   Added :data:`MAX_COOKIE_SIZE` and :attr:`Response.max_cookie_size`
 | 
					
						
							|  |  |  |     to control when Werkzeug warns about large cookies that browsers may
 | 
					
						
							|  |  |  |     ignore. (`#2693`_)
 | 
					
						
							|  |  |  | -   Updated documentation theme to make docs look better in small
 | 
					
						
							|  |  |  |     windows. (`#2709`_)
 | 
					
						
							|  |  |  | -   Rewrote the tutorial docs and example project to take a more
 | 
					
						
							|  |  |  |     structured approach to help new users avoid common pitfalls.
 | 
					
						
							|  |  |  |     (`#2676`_)
 | 
					
						
							| 
									
										
										
										
											2017-06-27 00:34:26 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-12-15 05:05:52 +08:00
										 |  |  | .. _pallets/meta#24: https://github.com/pallets/meta/issues/24
 | 
					
						
							| 
									
										
										
										
											2017-06-27 00:34:26 +08:00
										 |  |  | .. _#1421: https://github.com/pallets/flask/issues/1421
 | 
					
						
							| 
									
										
										
										
											2017-04-21 22:16:09 +08:00
										 |  |  | .. _#1489: https://github.com/pallets/flask/pull/1489
 | 
					
						
							| 
									
										
										
										
											2018-02-07 22:56:14 +08:00
										 |  |  | .. _#1559: https://github.com/pallets/flask/issues/1559
 | 
					
						
							| 
									
										
										
										
											2017-05-29 02:52:01 +08:00
										 |  |  | .. _#1621: https://github.com/pallets/flask/pull/1621
 | 
					
						
							| 
									
										
										
										
											2017-04-25 01:09:50 +08:00
										 |  |  | .. _#1898: https://github.com/pallets/flask/pull/1898
 | 
					
						
							| 
									
										
										
										
											2017-04-22 01:32:00 +08:00
										 |  |  | .. _#1936: https://github.com/pallets/flask/pull/1936
 | 
					
						
							| 
									
										
										
										
											2016-09-09 18:11:18 +08:00
										 |  |  | .. _#2017: https://github.com/pallets/flask/pull/2017
 | 
					
						
							| 
									
										
										
										
											2017-05-29 02:52:01 +08:00
										 |  |  | .. _#2193: https://github.com/pallets/flask/pull/2193
 | 
					
						
							| 
									
										
										
										
											2017-04-09 02:08:08 +08:00
										 |  |  | .. _#2223: https://github.com/pallets/flask/pull/2223
 | 
					
						
							| 
									
										
										
										
											2017-04-23 04:39:54 +08:00
										 |  |  | .. _#2254: https://github.com/pallets/flask/pull/2254
 | 
					
						
							| 
									
										
										
										
											2017-04-25 05:11:49 +08:00
										 |  |  | .. _#2256: https://github.com/pallets/flask/pull/2256
 | 
					
						
							| 
									
										
										
										
											2017-04-26 05:15:38 +08:00
										 |  |  | .. _#2259: https://github.com/pallets/flask/pull/2259
 | 
					
						
							| 
									
										
										
										
											2017-05-14 12:31:46 +08:00
										 |  |  | .. _#2282: https://github.com/pallets/flask/pull/2282
 | 
					
						
							| 
									
										
										
										
											2017-05-29 02:52:01 +08:00
										 |  |  | .. _#2288: https://github.com/pallets/flask/pull/2288
 | 
					
						
							| 
									
										
										
										
											2017-05-23 06:48:08 +08:00
										 |  |  | .. _#2297: https://github.com/pallets/flask/pull/2297
 | 
					
						
							| 
									
										
										
										
											2017-05-29 02:52:01 +08:00
										 |  |  | .. _#2314: https://github.com/pallets/flask/pull/2314
 | 
					
						
							|  |  |  | .. _#2316: https://github.com/pallets/flask/pull/2316
 | 
					
						
							| 
									
										
										
										
											2017-05-24 07:24:07 +08:00
										 |  |  | .. _#2319: https://github.com/pallets/flask/pull/2319
 | 
					
						
							| 
									
										
										
										
											2017-05-29 02:52:01 +08:00
										 |  |  | .. _#2326: https://github.com/pallets/flask/pull/2326
 | 
					
						
							| 
									
										
										
										
											2017-05-30 10:08:25 +08:00
										 |  |  | .. _#2348: https://github.com/pallets/flask/pull/2348
 | 
					
						
							| 
									
										
										
										
											2017-06-02 13:47:23 +08:00
										 |  |  | .. _#2352: https://github.com/pallets/flask/pull/2352
 | 
					
						
							| 
									
										
										
										
											2017-06-03 02:10:18 +08:00
										 |  |  | .. _#2354: https://github.com/pallets/flask/pull/2354
 | 
					
						
							| 
									
										
										
										
											2017-06-05 02:44:00 +08:00
										 |  |  | .. _#2358: https://github.com/pallets/flask/pull/2358
 | 
					
						
							| 
									
										
										
										
											2017-06-05 21:24:08 +08:00
										 |  |  | .. _#2362: https://github.com/pallets/flask/pull/2362
 | 
					
						
							| 
									
										
										
										
											2017-06-15 02:12:11 +08:00
										 |  |  | .. _#2374: https://github.com/pallets/flask/pull/2374
 | 
					
						
							| 
									
										
										
										
											2017-06-15 03:08:25 +08:00
										 |  |  | .. _#2373: https://github.com/pallets/flask/pull/2373
 | 
					
						
							| 
									
										
										
										
											2017-06-26 23:07:54 +08:00
										 |  |  | .. _#2385: https://github.com/pallets/flask/issues/2385
 | 
					
						
							| 
									
										
										
										
											2017-07-13 23:42:53 +08:00
										 |  |  | .. _#2412: https://github.com/pallets/flask/pull/2412
 | 
					
						
							| 
									
										
										
										
											2017-07-15 10:27:45 +08:00
										 |  |  | .. _#2414: https://github.com/pallets/flask/pull/2414
 | 
					
						
							| 
									
										
										
										
											2017-07-15 13:37:53 +08:00
										 |  |  | .. _#2416: https://github.com/pallets/flask/pull/2416
 | 
					
						
							| 
									
										
										
										
											2017-08-01 04:58:50 +08:00
										 |  |  | .. _#2430: https://github.com/pallets/flask/pull/2430
 | 
					
						
							| 
									
										
										
										
											2017-07-30 04:03:08 +08:00
										 |  |  | .. _#2436: https://github.com/pallets/flask/pull/2436
 | 
					
						
							| 
									
										
										
										
											2017-08-19 11:41:03 +08:00
										 |  |  | .. _#2450: https://github.com/pallets/flask/pull/2450
 | 
					
						
							| 
									
										
										
										
											2018-01-24 07:34:52 +08:00
										 |  |  | .. _#2526: https://github.com/pallets/flask/issues/2526
 | 
					
						
							| 
									
										
										
										
											2018-01-05 23:40:51 +08:00
										 |  |  | .. _#2529: https://github.com/pallets/flask/pull/2529
 | 
					
						
							| 
									
										
										
										
											2018-02-07 00:03:09 +08:00
										 |  |  | .. _#2586: https://github.com/pallets/flask/issues/2586
 | 
					
						
							| 
									
										
										
										
											2018-01-05 23:40:51 +08:00
										 |  |  | .. _#2581: https://github.com/pallets/flask/pull/2581
 | 
					
						
							| 
									
										
										
										
											2018-01-23 04:16:37 +08:00
										 |  |  | .. _#2606: https://github.com/pallets/flask/pull/2606
 | 
					
						
							| 
									
										
										
										
											2018-01-24 07:34:52 +08:00
										 |  |  | .. _#2607: https://github.com/pallets/flask/pull/2607
 | 
					
						
							| 
									
										
										
										
											2018-02-20 07:34:46 +08:00
										 |  |  | .. _#2636: https://github.com/pallets/flask/pull/2636
 | 
					
						
							| 
									
										
										
										
											2018-02-23 23:51:34 +08:00
										 |  |  | .. _#2635: https://github.com/pallets/flask/pull/2635
 | 
					
						
							| 
									
										
										
										
											2018-02-24 07:45:37 +08:00
										 |  |  | .. _#2629: https://github.com/pallets/flask/pull/2629
 | 
					
						
							| 
									
										
										
										
											2018-03-19 23:41:54 +08:00
										 |  |  | .. _#2651: https://github.com/pallets/flask/issues/2651
 | 
					
						
							| 
									
										
										
										
											2018-04-19 04:21:16 +08:00
										 |  |  | .. _#2676: https://github.com/pallets/flask/pull/2676
 | 
					
						
							| 
									
										
										
										
											2018-04-11 00:29:48 +08:00
										 |  |  | .. _#2691: https://github.com/pallets/flask/pull/2691
 | 
					
						
							| 
									
										
										
										
											2017-04-19 20:08:53 +08:00
										 |  |  | .. _#2693: https://github.com/pallets/flask/pull/2693
 | 
					
						
							| 
									
										
										
										
											2018-04-19 04:21:16 +08:00
										 |  |  | .. _#2709: https://github.com/pallets/flask/pull/2709
 | 
					
						
							| 
									
										
										
										
											2018-04-27 03:22:45 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-11-23 17:32:13 +08:00
										 |  |  | Version 0.12.3
 | 
					
						
							|  |  |  | --------------
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-04-27 03:12:03 +08:00
										 |  |  | Released on April 26th 2018
 | 
					
						
							| 
									
										
										
										
											2017-11-23 17:32:13 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-04-11 04:10:53 +08:00
										 |  |  | -   :func:`Request.get_json` no longer accepts arbitrary encodings.
 | 
					
						
							|  |  |  |     Incoming JSON should be encoded using UTF-8 per :rfc:`8259`, but
 | 
					
						
							|  |  |  |     Flask will autodetect UTF-8, -16, or -32. (`#2692`_)
 | 
					
						
							|  |  |  | -   Fix a Python warning about imports when using ``python -m flask``.
 | 
					
						
							|  |  |  |     (`#2666`_)
 | 
					
						
							|  |  |  | -   Fix a ``ValueError`` caused by invalid ``Range`` requests in some
 | 
					
						
							|  |  |  |     cases.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .. _#2666: https://github.com/pallets/flask/issues/2666
 | 
					
						
							|  |  |  | .. _#2692: https://github.com/pallets/flask/issues/2692
 | 
					
						
							| 
									
										
										
										
											2017-11-23 17:32:13 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-05-16 07:58:01 +08:00
										 |  |  | Version 0.12.2
 | 
					
						
							|  |  |  | --------------
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-05-16 14:39:28 +08:00
										 |  |  | Released on May 16 2017
 | 
					
						
							| 
									
										
										
										
											2017-05-16 07:58:01 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | - Fix a bug in `safe_join` on Windows.
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-12-25 23:33:55 +08:00
										 |  |  | Version 0.12.1
 | 
					
						
							|  |  |  | --------------
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-04-01 00:43:34 +08:00
										 |  |  | Bugfix release, released on March 31st 2017
 | 
					
						
							| 
									
										
										
										
											2016-12-25 23:33:55 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-12-31 05:40:30 +08:00
										 |  |  | - Prevent `flask run` from showing a NoAppException when an ImportError occurs
 | 
					
						
							|  |  |  |   within the imported application module.
 | 
					
						
							| 
									
										
										
										
											2016-12-26 10:50:47 +08:00
										 |  |  | - Fix encoding behavior of ``app.config.from_pyfile`` for Python 3. Fix
 | 
					
						
							|  |  |  |   ``#2118``.
 | 
					
						
							| 
									
										
										
										
											2017-03-05 05:32:23 +08:00
										 |  |  | - Use the ``SERVER_NAME`` config if it is present as default values for
 | 
					
						
							| 
									
										
										
										
											2017-01-18 06:08:33 +08:00
										 |  |  |   ``app.run``. ``#2109``, ``#2152``
 | 
					
						
							| 
									
										
										
										
											2017-04-01 00:41:10 +08:00
										 |  |  | - Call `ctx.auto_pop` with the exception object instead of `None`, in the
 | 
					
						
							|  |  |  |   event that a `BaseException` such as `KeyboardInterrupt` is raised in a
 | 
					
						
							|  |  |  |   request handler.
 | 
					
						
							| 
									
										
										
										
											2016-12-26 10:50:47 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-06-02 19:53:35 +08:00
										 |  |  | Version 0.12
 | 
					
						
							|  |  |  | ------------
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-12-22 04:19:53 +08:00
										 |  |  | Released on December 21st 2016, codename Punsch.
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-06-02 19:53:35 +08:00
										 |  |  | - the cli command now responds to `--version`.
 | 
					
						
							| 
									
										
										
										
											2016-08-26 09:08:03 +08:00
										 |  |  | - Mimetype guessing and ETag generation for file-like objects in ``send_file``
 | 
					
						
							|  |  |  |   has been removed, as per issue ``#104``.  See pull request ``#1849``.
 | 
					
						
							|  |  |  | - Mimetype guessing in ``send_file`` now fails loudly and doesn't fall back to
 | 
					
						
							|  |  |  |   ``application/octet-stream``. See pull request ``#1988``.
 | 
					
						
							| 
									
										
										
										
											2016-06-04 17:26:16 +08:00
										 |  |  | - Make ``flask.safe_join`` able to join multiple paths like ``os.path.join``
 | 
					
						
							|  |  |  |   (pull request ``#1730``).
 | 
					
						
							| 
									
										
										
										
											2016-09-08 00:18:53 +08:00
										 |  |  | - Revert a behavior change that made the dev server crash instead of returning
 | 
					
						
							|  |  |  |   a Internal Server Error (pull request ``#2006``).
 | 
					
						
							| 
									
										
										
										
											2016-09-08 16:55:59 +08:00
										 |  |  | - Correctly invoke response handlers for both regular request dispatching as
 | 
					
						
							|  |  |  |   well as error handlers.
 | 
					
						
							| 
									
										
										
										
											2016-08-25 21:41:46 +08:00
										 |  |  | - Disable logger propagation by default for the app logger.
 | 
					
						
							| 
									
										
										
										
											2016-09-26 18:43:46 +08:00
										 |  |  | - Add support for range requests in ``send_file``.
 | 
					
						
							| 
									
										
										
										
											2016-10-12 14:54:25 +08:00
										 |  |  | - ``app.test_client`` includes preset default environment, which can now be
 | 
					
						
							|  |  |  |   directly set, instead of per ``client.get``.
 | 
					
						
							| 
									
										
										
										
											2016-06-02 19:53:35 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-06-14 02:29:21 +08:00
										 |  |  | Version 0.11.2
 | 
					
						
							|  |  |  | --------------
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Bugfix release, unreleased
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | - Fix crash when running under PyPy3, see pull request ``#1814``.
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-06-04 00:43:32 +08:00
										 |  |  | Version 0.11.1
 | 
					
						
							|  |  |  | --------------
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-06-08 00:22:43 +08:00
										 |  |  | Bugfix release, released on June 7th 2016.
 | 
					
						
							| 
									
										
										
										
											2016-06-04 00:43:32 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | - Fixed a bug that prevented ``FLASK_APP=foobar/__init__.py`` from working. See
 | 
					
						
							|  |  |  |   pull request ``#1872``.
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-05-27 03:05:39 +08:00
										 |  |  | Version 0.11
 | 
					
						
							|  |  |  | ------------
 | 
					
						
							| 
									
										
										
										
											2013-07-30 22:43:41 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-05-29 17:01:22 +08:00
										 |  |  | Released on May 29th 2016, codename Absinthe.
 | 
					
						
							| 
									
										
										
										
											2013-07-30 22:43:41 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-12-30 19:11:53 +08:00
										 |  |  | - Added support to serializing top-level arrays to :func:`flask.jsonify`. This
 | 
					
						
							|  |  |  |   introduces a security risk in ancient browsers. See
 | 
					
						
							| 
									
										
										
										
											2016-01-26 07:02:27 +08:00
										 |  |  |   :ref:`json-security` for details.
 | 
					
						
							| 
									
										
										
										
											2015-06-17 19:59:04 +08:00
										 |  |  | - Added before_render_template signal.
 | 
					
						
							| 
									
										
										
										
											2014-10-21 03:18:38 +08:00
										 |  |  | - Added `**kwargs` to :meth:`flask.Test.test_client` to support passing
 | 
					
						
							|  |  |  |   additional keyword arguments to the constructor of
 | 
					
						
							|  |  |  |   :attr:`flask.Flask.test_client_class`.
 | 
					
						
							| 
									
										
										
										
											2013-07-30 22:43:54 +08:00
										 |  |  | - Added ``SESSION_REFRESH_EACH_REQUEST`` config key that controls the
 | 
					
						
							| 
									
										
										
										
											2014-11-05 11:04:58 +08:00
										 |  |  |   set-cookie behavior.  If set to ``True`` a permanent session will be
 | 
					
						
							| 
									
										
										
										
											2013-07-30 22:43:54 +08:00
										 |  |  |   refreshed each request and get their lifetime extended, if set to
 | 
					
						
							| 
									
										
										
										
											2014-11-05 11:04:58 +08:00
										 |  |  |   ``False`` it will only be modified if the session actually modifies.
 | 
					
						
							| 
									
										
										
										
											2013-07-30 22:43:54 +08:00
										 |  |  |   Non permanent sessions are not affected by this and will always
 | 
					
						
							|  |  |  |   expire if the browser window closes.
 | 
					
						
							| 
									
										
										
										
											2014-02-09 01:01:13 +08:00
										 |  |  | - Made Flask support custom JSON mimetypes for incoming data.
 | 
					
						
							| 
									
										
										
										
											2014-02-09 01:33:42 +08:00
										 |  |  | - Added support for returning tuples in the form ``(response, headers)``
 | 
					
						
							|  |  |  |   from a view function.
 | 
					
						
							| 
									
										
										
										
											2014-02-13 06:53:51 +08:00
										 |  |  | - Added :meth:`flask.Config.from_json`.
 | 
					
						
							| 
									
										
										
										
											2014-02-21 02:15:42 +08:00
										 |  |  | - Added :attr:`flask.Flask.config_class`.
 | 
					
						
							| 
									
										
										
										
											2016-05-31 05:20:23 +08:00
										 |  |  | - Added :meth:`flask.Config.get_namespace`.
 | 
					
						
							| 
									
										
										
										
											2014-10-30 23:40:38 +08:00
										 |  |  | - Templates are no longer automatically reloaded outside of debug mode. This
 | 
					
						
							|  |  |  |   can be configured with the new ``TEMPLATES_AUTO_RELOAD`` config key.
 | 
					
						
							| 
									
										
										
										
											2014-04-11 19:31:17 +08:00
										 |  |  | - Added a workaround for a limitation in Python 3.3's namespace loader.
 | 
					
						
							| 
									
										
										
										
											2014-04-12 01:59:54 +08:00
										 |  |  | - Added support for explicit root paths when using Python 3.3's namespace
 | 
					
						
							|  |  |  |   packages.
 | 
					
						
							| 
									
										
										
										
											2014-11-05 12:03:55 +08:00
										 |  |  | - Added :command:`flask` and the ``flask.cli`` module to start the local
 | 
					
						
							| 
									
										
										
										
											2014-04-28 19:27:07 +08:00
										 |  |  |   debug server through the click CLI system.  This is recommended over the old
 | 
					
						
							|  |  |  |   ``flask.run()`` method as it works faster and more reliable due to a
 | 
					
						
							|  |  |  |   different design and also replaces ``Flask-Script``.
 | 
					
						
							| 
									
										
										
										
											2013-08-18 06:40:06 +08:00
										 |  |  | - Error handlers that match specific classes are now checked first,
 | 
					
						
							|  |  |  |   thereby allowing catching exceptions that are subclasses of HTTP
 | 
					
						
							| 
									
										
										
										
											2014-09-20 14:41:46 +08:00
										 |  |  |   exceptions (in ``werkzeug.exceptions``).  This makes it possible
 | 
					
						
							| 
									
										
										
										
											2013-08-18 06:40:06 +08:00
										 |  |  |   for 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.
 | 
					
						
							| 
									
										
										
										
											2014-07-27 17:19:52 +08:00
										 |  |  | - Added :meth:`flask.Config.from_mapping`.
 | 
					
						
							| 
									
										
										
										
											2014-08-27 07:08:12 +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 through the
 | 
					
						
							|  |  |  |   ``LOGGER_HANDLER_POLICY`` configuration key.
 | 
					
						
							| 
									
										
										
										
											2015-03-06 04:53:20 +08:00
										 |  |  | - Removed deprecated module functionality.
 | 
					
						
							| 
									
										
										
										
											2014-09-03 23:57:44 +08:00
										 |  |  | - Added the ``EXPLAIN_TEMPLATE_LOADING`` config flag which when enabled will
 | 
					
						
							|  |  |  |   instruct Flask to explain how it locates templates.  This should help
 | 
					
						
							|  |  |  |   users debug when the wrong templates are loaded.
 | 
					
						
							| 
									
										
										
										
											2014-09-04 02:12:06 +08:00
										 |  |  | - Enforce blueprint handling in the order they were registered for template
 | 
					
						
							|  |  |  |   loading.
 | 
					
						
							| 
									
										
										
										
											2014-10-27 18:31:01 +08:00
										 |  |  | - Ported test suite to py.test.
 | 
					
						
							| 
									
										
										
										
											2014-10-20 01:54:41 +08:00
										 |  |  | - Deprecated ``request.json`` in favour of ``request.get_json()``.
 | 
					
						
							| 
									
										
										
										
											2014-10-14 04:30:45 +08:00
										 |  |  | - Add "pretty" and "compressed" separators definitions in jsonify() method.
 | 
					
						
							|  |  |  |   Reduces JSON response size when JSONIFY_PRETTYPRINT_REGULAR=False by removing
 | 
					
						
							|  |  |  |   unnecessary white space included by default after separators.
 | 
					
						
							| 
									
										
										
										
											2014-11-30 00:58:50 +08:00
										 |  |  | - JSON responses are now terminated with a newline character, because it is a
 | 
					
						
							|  |  |  |   convention that UNIX text files end with a newline and some clients don't
 | 
					
						
							|  |  |  |   deal well when this newline is missing. See
 | 
					
						
							| 
									
										
										
										
											2016-04-04 05:11:38 +08:00
										 |  |  |   https://github.com/pallets/flask/pull/1262 -- this came up originally as a
 | 
					
						
							| 
									
										
										
										
											2014-11-30 00:58:50 +08:00
										 |  |  |   part of https://github.com/kennethreitz/httpbin/issues/168
 | 
					
						
							| 
									
										
										
										
											2014-12-27 03:16:25 +08:00
										 |  |  | - The automatically provided ``OPTIONS`` method is now correctly disabled if
 | 
					
						
							|  |  |  |   the user registered an overriding rule with the lowercase-version
 | 
					
						
							|  |  |  |   ``options`` (issue ``#1288``).
 | 
					
						
							| 
									
										
										
										
											2015-01-23 21:54:30 +08:00
										 |  |  | - ``flask.json.jsonify`` now supports the ``datetime.date`` type (pull request
 | 
					
						
							|  |  |  |   ``#1326``).
 | 
					
						
							| 
									
										
										
										
											2015-03-23 23:43:44 +08:00
										 |  |  | - Don't leak exception info of already catched exceptions to context teardown
 | 
					
						
							|  |  |  |   handlers (pull request ``#1393``).
 | 
					
						
							| 
									
										
										
										
											2015-06-06 09:31:51 +08:00
										 |  |  | - Allow custom Jinja environment subclasses (pull request ``#1422``).
 | 
					
						
							| 
									
										
										
										
											2014-10-26 07:09:56 +08:00
										 |  |  | - Updated extension dev guidelines.
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-06-20 23:49:50 +08:00
										 |  |  | - ``flask.g`` now has ``pop()`` and ``setdefault`` methods.
 | 
					
						
							| 
									
										
										
										
											2015-07-01 02:00:14 +08:00
										 |  |  | - Turn on autoescape for ``flask.templating.render_template_string`` by default
 | 
					
						
							|  |  |  |   (pull request ``#1515``).
 | 
					
						
							| 
									
										
										
										
											2016-04-03 03:08:58 +08:00
										 |  |  | - ``flask.ext`` is now deprecated (pull request ``#1484``).
 | 
					
						
							| 
									
										
										
										
											2016-04-03 03:10:24 +08:00
										 |  |  | - ``send_from_directory`` now raises BadRequest if the filename is invalid on
 | 
					
						
							|  |  |  |   the server OS (pull request ``#1763``).
 | 
					
						
							| 
									
										
										
										
											2016-04-09 06:30:47 +08:00
										 |  |  | - Added the ``JSONIFY_MIMETYPE`` configuration variable (pull request ``#1728``).
 | 
					
						
							| 
									
										
										
										
											2016-05-27 03:46:56 +08:00
										 |  |  | - Exceptions during teardown handling will no longer leave bad application
 | 
					
						
							|  |  |  |   contexts lingering around.
 | 
					
						
							| 
									
										
										
										
											2013-09-30 23:40:35 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-06-27 22:49:27 +08:00
										 |  |  | Version 0.10.2
 | 
					
						
							|  |  |  | --------------
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | (bugfix release, release date to be announced)
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | - Fixed broken `test_appcontext_signals()` test case.
 | 
					
						
							| 
									
										
										
										
											2013-08-13 21:53:58 +08:00
										 |  |  | - Raise an :exc:`AttributeError` in :func:`flask.helpers.find_package` with a
 | 
					
						
							|  |  |  |   useful message explaining why it is raised when a PEP 302 import hook is used
 | 
					
						
							|  |  |  |   without an `is_package()` method.
 | 
					
						
							| 
									
										
										
										
											2013-10-17 02:12:20 +08:00
										 |  |  | - Fixed an issue causing exceptions raised before entering a request or app
 | 
					
						
							|  |  |  |   context to be passed to teardown handlers.
 | 
					
						
							| 
									
										
										
										
											2014-02-09 01:19:00 +08:00
										 |  |  | - Fixed an issue with query parameters getting removed from requests in
 | 
					
						
							|  |  |  |   the test client when absolute URLs were requested.
 | 
					
						
							| 
									
										
										
										
											2014-02-09 01:39:26 +08:00
										 |  |  | - Made `@before_first_request` into a decorator as intended.
 | 
					
						
							| 
									
										
										
										
											2014-02-09 01:46:02 +08:00
										 |  |  | - Fixed an etags bug when sending a file streams with a name.
 | 
					
						
							| 
									
										
										
										
											2014-02-09 21:01:54 +08:00
										 |  |  | - Fixed `send_from_directory` not expanding to the application root path
 | 
					
						
							|  |  |  |   correctly.
 | 
					
						
							| 
									
										
										
										
											2014-02-09 21:26:32 +08:00
										 |  |  | - 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.
 | 
					
						
							| 
									
										
										
										
											2015-07-16 18:01:25 +08:00
										 |  |  | - Fixed Python 3 bug when a handler from `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
 | 
					
						
							|  |  |  | --------------
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-06-14 16:53:40 +08:00
										 |  |  | (bugfix release, released on June 14th 2013)
 | 
					
						
							| 
									
										
										
										
											2013-06-14 06:36:50 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-06-14 07:05:09 +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
 | 
					
						
							|  |  |  |   possible to use that filter in single quoted attributes.  This should
 | 
					
						
							|  |  |  |   make using that filter with angular.js easier.
 | 
					
						
							| 
									
										
										
										
											2013-06-14 07:24:17 +08:00
										 |  |  | - 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.
 | 
					
						
							| 
									
										
										
										
											2013-06-15 02:31:34 +08:00
										 |  |  | - Fixed an issue where registering the same method twice for the same endpoint
 | 
					
						
							| 
									
										
										
										
											2013-06-14 16:41:20 +08:00
										 |  |  |   would trigger an exception incorrectly.
 | 
					
						
							| 
									
										
										
										
											2013-06-14 07:05:09 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-08-11 09:36:14 +08:00
										 |  |  | Version 0.10
 | 
					
						
							|  |  |  | ------------
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-10-23 16:20:02 +08:00
										 |  |  | Released on June 13th 2013, codename Limoncello.
 | 
					
						
							| 
									
										
										
										
											2012-08-11 09:36:14 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | - Changed default cookie serialization format from pickle to JSON to
 | 
					
						
							|  |  |  |   limit the impact an attacker can do if the secret key leaks.  See
 | 
					
						
							|  |  |  |   :ref:`upgrading-to-010` for more information.
 | 
					
						
							| 
									
										
										
										
											2012-10-07 18:53:36 +08:00
										 |  |  | - Added ``template_test`` methods in addition to the already existing
 | 
					
						
							|  |  |  |   ``template_filter`` method family.
 | 
					
						
							| 
									
										
										
										
											2013-01-27 08:46:19 +08:00
										 |  |  | - Added ``template_global`` methods in addition to the already existing
 | 
					
						
							|  |  |  |   ``template_filter`` method family.
 | 
					
						
							| 
									
										
										
										
											2012-10-07 21:24:03 +08:00
										 |  |  | - Set the content-length header for x-sendfile.
 | 
					
						
							| 
									
										
										
										
											2012-10-07 21:33:25 +08:00
										 |  |  | - ``tojson`` filter now does not escape script blocks in HTML5 parsers.
 | 
					
						
							| 
									
										
										
										
											2013-06-03 19:25:08 +08:00
										 |  |  | - ``tojson`` used in templates is now safe by default due.  This was
 | 
					
						
							|  |  |  |   allowed due to the different escaping behavior.
 | 
					
						
							| 
									
										
										
										
											2012-10-07 23:13:12 +08:00
										 |  |  | - Flask will now raise an error if you attempt to register a new function
 | 
					
						
							|  |  |  |   on an already used endpoint.
 | 
					
						
							| 
									
										
										
										
											2012-10-08 05:31:48 +08:00
										 |  |  | - 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.
 | 
					
						
							| 
									
										
										
										
											2012-10-08 12:48:13 +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.
 | 
					
						
							| 
									
										
										
										
											2012-10-08 13:01:49 +08:00
										 |  |  | - Templates can now be rendered without request context.  The behavior is
 | 
					
						
							|  |  |  |   slightly different as the ``request``, ``session`` and ``g`` objects
 | 
					
						
							|  |  |  |   will not be available and blueprint's context processors are 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.
 | 
					
						
							| 
									
										
										
										
											2012-10-18 07:48:15 +08:00
										 |  |  | - Added an option to generate non-ascii encoded JSON which should result
 | 
					
						
							|  |  |  |   in less bytes being transmitted over the network.  It's disabled by
 | 
					
						
							|  |  |  |   default to not cause confusion with existing libraries that might expect
 | 
					
						
							|  |  |  |   ``flask.json.dumps`` to return bytestrings by default.
 | 
					
						
							| 
									
										
										
										
											2012-12-21 18:45:42 +08:00
										 |  |  | - ``flask.g`` is now stored on the app context instead of the request
 | 
					
						
							|  |  |  |   context.
 | 
					
						
							| 
									
										
										
										
											2013-06-09 19:06:33 +08:00
										 |  |  | - ``flask.g`` now gained a ``get()`` method for not erroring out on non
 | 
					
						
							|  |  |  |   existing items.
 | 
					
						
							|  |  |  | - ``flask.g`` now can be used with the ``in`` operator to see what's defined
 | 
					
						
							|  |  |  |   and it now is iterable and will yield all attributes stored.
 | 
					
						
							| 
									
										
										
										
											2012-12-21 18:45:42 +08:00
										 |  |  | - ``flask.Flask.request_globals_class`` got renamed to
 | 
					
						
							|  |  |  |   ``flask.Flask.app_ctx_globals_class`` which is a better name to what it
 | 
					
						
							|  |  |  |   does since 0.10.
 | 
					
						
							| 
									
										
										
										
											2012-12-21 18:47:27 +08:00
										 |  |  | - `request`, `session` and `g` are now also added as proxies to 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.
 | 
					
						
							| 
									
										
										
										
											2013-01-22 01:44:32 +08:00
										 |  |  | - Flask will no longer invoke the wrong error handlers if a proxy
 | 
					
						
							|  |  |  |   exception is passed through.
 | 
					
						
							| 
									
										
										
										
											2013-01-28 23:08:54 +08:00
										 |  |  | - Added a workaround for chrome's cookies in localhost not working
 | 
					
						
							|  |  |  |   as intended with domain names.
 | 
					
						
							| 
									
										
										
										
											2013-01-30 03:31:45 +08:00
										 |  |  | - Changed logic for picking defaults for cookie values from sessions
 | 
					
						
							|  |  |  |   to work better with Google Chrome.
 | 
					
						
							| 
									
										
										
										
											2013-03-22 05:04:06 +08:00
										 |  |  | - Added `message_flashed` signal that simplifies flashing testing.
 | 
					
						
							| 
									
										
										
										
											2013-05-14 18:00:04 +08:00
										 |  |  | - Added support for copying of request contexts for better working with
 | 
					
						
							|  |  |  |   greenlets.
 | 
					
						
							| 
									
										
										
										
											2013-05-23 20:59:10 +08:00
										 |  |  | - 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.
 | 
					
						
							| 
									
										
										
										
											2013-05-18 23:06:25 +08:00
										 |  |  | - Python requirements changed: requiring Python 2.6 or 2.7 now to prepare
 | 
					
						
							|  |  |  |   for Python 3.3 port.
 | 
					
						
							| 
									
										
										
										
											2013-05-31 01:15:17 +08:00
										 |  |  | - 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.
 | 
					
						
							| 
									
										
										
										
											2013-06-03 04:47:28 +08:00
										 |  |  | - 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.
 | 
					
						
							| 
									
										
										
										
											2013-06-01 07:20:00 +08:00
										 |  |  | - Added the ``JSONIFY_PRETTYPRINT_REGULAR`` configuration variable.
 | 
					
						
							| 
									
										
										
										
											2013-06-02 02:24:03 +08:00
										 |  |  | - Flask now orders JSON keys by default to not trash HTTP caches due to
 | 
					
						
							|  |  |  |   different hash seeds between different workers.
 | 
					
						
							| 
									
										
										
										
											2013-06-05 16:53:26 +08:00
										 |  |  | - Added `appcontext_pushed` and `appcontext_popped` signals.
 | 
					
						
							| 
									
										
										
										
											2013-06-07 07:46:30 +08:00
										 |  |  | - The builtin run method now takes the ``SERVER_NAME`` into account when
 | 
					
						
							|  |  |  |   picking the default port to run on.
 | 
					
						
							| 
									
										
										
										
											2013-06-12 23:27:48 +08:00
										 |  |  | - Added `flask.request.get_json()` as a replacement for the old
 | 
					
						
							|  |  |  |   `flask.request.json` property.
 | 
					
						
							| 
									
										
										
										
											2012-08-11 09:36:14 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-30 05:36:57 +08:00
										 |  |  | Version 0.9
 | 
					
						
							|  |  |  | -----------
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-07-02 05:38:27 +08:00
										 |  |  | Released on July 1st 2012, codename Campari.
 | 
					
						
							| 
									
										
										
										
											2011-09-30 05:36:57 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-03-09 05:41:39 +08:00
										 |  |  | - The :func:`flask.Request.on_json_loading_failed` now returns a JSON formatted
 | 
					
						
							|  |  |  |   response by default.
 | 
					
						
							| 
									
										
										
										
											2011-10-06 22:57:03 +08:00
										 |  |  | - The :func:`flask.url_for` function now can generate anchors to the
 | 
					
						
							|  |  |  |   generated links.
 | 
					
						
							| 
									
										
										
										
											2011-11-04 09:46:22 +08:00
										 |  |  | - The :func:`flask.url_for` function now can also explicitly generate
 | 
					
						
							|  |  |  |   URL rules specific to a given HTTP method.
 | 
					
						
							| 
									
										
										
										
											2011-10-12 10:09:37 +08:00
										 |  |  | - Logger now only returns the debug log setting if it was not set
 | 
					
						
							|  |  |  |   explicitly.
 | 
					
						
							| 
									
										
										
										
											2011-11-06 00:43:40 +08:00
										 |  |  | - Unregister a circular dependency between the WSGI environment and
 | 
					
						
							|  |  |  |   the request object when shutting down the request.  This means that
 | 
					
						
							| 
									
										
										
										
											2014-11-05 11:04:58 +08:00
										 |  |  |   environ ``werkzeug.request`` will be ``None`` after the response was
 | 
					
						
							| 
									
										
										
										
											2011-11-06 00:43:40 +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.
 | 
					
						
							| 
									
										
										
										
											2011-11-20 23:54:40 +08:00
										 |  |  | - 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.
 | 
					
						
							| 
									
										
										
										
											2012-01-17 09:53:20 +08:00
										 |  |  | - The :class:`flask.Flask` class will avoid importing the provided import name
 | 
					
						
							|  |  |  |   if it can (the required first parameter), to benefit tools which build Flask
 | 
					
						
							|  |  |  |   instances programmatically.  The Flask class will fall back to using import
 | 
					
						
							|  |  |  |   on systems with custom module hooks, e.g. Google App Engine, or when the
 | 
					
						
							|  |  |  |   import name is inside a zip archive (usually a .egg) prior to Python 2.7.
 | 
					
						
							|  |  |  | - Blueprints now have a decorator to add custom template filters application
 | 
					
						
							|  |  |  |   wide, :meth:`flask.Blueprint.app_template_filter`.
 | 
					
						
							|  |  |  | - The Flask and Blueprint classes now have a non-decorator method for adding
 | 
					
						
							|  |  |  |   custom template filters application wide,
 | 
					
						
							|  |  |  |   :meth:`flask.Flask.add_template_filter` and
 | 
					
						
							|  |  |  |   :meth:`flask.Blueprint.add_app_template_filter`.
 | 
					
						
							| 
									
										
										
										
											2012-01-17 12:10:21 +08:00
										 |  |  | - The :func:`flask.get_flashed_messages` function now allows rendering flashed
 | 
					
						
							|  |  |  |   message categories in separate blocks, through a ``category_filter``
 | 
					
						
							|  |  |  |   argument.
 | 
					
						
							| 
									
										
										
										
											2014-11-05 11:04:58 +08:00
										 |  |  | - The :meth:`flask.Flask.run` method now accepts ``None`` for `host` and `port`
 | 
					
						
							|  |  |  |   arguments, using default values when ``None``.  This allows for calling run
 | 
					
						
							| 
									
										
										
										
											2012-01-17 12:38:36 +08:00
										 |  |  |   using configuration values, e.g. ``app.run(app.config.get('MYHOST'),
 | 
					
						
							|  |  |  |   app.config.get('MYPORT'))``, with proper behavior whether or not a config
 | 
					
						
							|  |  |  |   file is provided.
 | 
					
						
							| 
									
										
										
										
											2012-02-24 22:33:11 +08:00
										 |  |  | - The :meth:`flask.render_template` method now accepts a either an iterable of
 | 
					
						
							|  |  |  |   template names or a single template name.  Previously, it only accepted a
 | 
					
						
							|  |  |  |   single template name.  On an iterable, the first template found is rendered.
 | 
					
						
							| 
									
										
										
										
											2012-04-09 22:22:36 +08:00
										 |  |  | - Added :meth:`flask.Flask.app_context` which works very similar to the
 | 
					
						
							|  |  |  |   request context but only provides access to the current application.  This
 | 
					
						
							|  |  |  |   also adds support for URL generation without an active request context.
 | 
					
						
							| 
									
										
										
										
											2012-03-12 11:45:58 +08:00
										 |  |  | - View functions can now return a tuple with the first instance being an
 | 
					
						
							|  |  |  |   instance of :class:`flask.Response`.  This allows for returning
 | 
					
						
							|  |  |  |   ``jsonify(error="error msg"), 400`` from a view function.
 | 
					
						
							| 
									
										
										
										
											2012-04-24 13:48:05 +08:00
										 |  |  | - :class:`~flask.Flask` and :class:`~flask.Blueprint` now provide a
 | 
					
						
							|  |  |  |   :meth:`~flask.Flask.get_send_file_max_age` hook for subclasses to override
 | 
					
						
							|  |  |  |   behavior of serving static files from Flask when using
 | 
					
						
							|  |  |  |   :meth:`flask.Flask.send_static_file` (used for the default static file
 | 
					
						
							|  |  |  |   handler) and :func:`~flask.helpers.send_file`.  This hook is provided a
 | 
					
						
							|  |  |  |   filename, which for example allows changing cache controls by file extension.
 | 
					
						
							|  |  |  |   The default max-age for `send_file` and static files can be configured
 | 
					
						
							|  |  |  |   through a new ``SEND_FILE_MAX_AGE_DEFAULT`` configuration variable, which is
 | 
					
						
							|  |  |  |   used in the default `get_send_file_max_age` implementation.
 | 
					
						
							| 
									
										
										
										
											2012-04-01 23:33:42 +08:00
										 |  |  | - Fixed an assumption in sessions implementation which could break message
 | 
					
						
							|  |  |  |   flashing on sessions implementations which use external storage.
 | 
					
						
							| 
									
										
										
										
											2012-04-09 22:56:33 +08:00
										 |  |  | - Changed the behavior of tuple return values from functions.  They are no
 | 
					
						
							|  |  |  |   longer arguments to the response object, they now have a defined meaning.
 | 
					
						
							| 
									
										
										
										
											2012-04-19 08:46:07 +08:00
										 |  |  | - Added :attr:`flask.Flask.request_globals_class` to allow a specific class to
 | 
					
						
							|  |  |  |   be used on creation of the :data:`~flask.g` instance of each request.
 | 
					
						
							| 
									
										
										
										
											2012-05-08 19:51:26 +08:00
										 |  |  | - Added `required_methods` attribute to view functions to force-add methods
 | 
					
						
							|  |  |  |   on registration.
 | 
					
						
							| 
									
										
										
										
											2012-05-08 20:14:32 +08:00
										 |  |  | - Added :func:`flask.after_this_request`.
 | 
					
						
							| 
									
										
										
										
											2012-06-27 22:06:39 +08:00
										 |  |  | - Added :func:`flask.stream_with_context` and the ability to push contexts
 | 
					
						
							|  |  |  |   multiple times without producing unexpected behavior.
 | 
					
						
							| 
									
										
										
										
											2011-10-06 22:57:03 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-10-02 07:06:22 +08:00
										 |  |  | Version 0.8.1
 | 
					
						
							|  |  |  | -------------
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-07-02 00:31:53 +08:00
										 |  |  | Bugfix release, released on July 1st 2012
 | 
					
						
							| 
									
										
										
										
											2011-10-02 07:06:22 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-10-02 07:08:54 +08:00
										 |  |  | - Fixed an issue with the undocumented `flask.session` module to not
 | 
					
						
							|  |  |  |   work properly on Python 2.5.  It should not be used but did cause
 | 
					
						
							|  |  |  |   some problems for package managers.
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-07-07 17:26:53 +08:00
										 |  |  | Version 0.8
 | 
					
						
							|  |  |  | -----------
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-30 05:33:46 +08:00
										 |  |  | Released on September 29th 2011, codename Rakija
 | 
					
						
							| 
									
										
										
										
											2011-07-07 17:26:53 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-07-07 17:27:22 +08:00
										 |  |  | - Refactored session support into a session interface so that
 | 
					
						
							|  |  |  |   the implementation of the sessions can be changed without
 | 
					
						
							|  |  |  |   having to override the Flask class.
 | 
					
						
							| 
									
										
										
										
											2011-07-07 18:29:58 +08:00
										 |  |  | - Empty session cookies are now deleted properly automatically.
 | 
					
						
							| 
									
										
										
										
											2011-07-14 20:18:42 +08:00
										 |  |  | - View functions can now opt out of getting the automatic
 | 
					
						
							|  |  |  |   OPTIONS implementation.
 | 
					
						
							| 
									
										
										
										
											2011-08-09 03:47:26 +08:00
										 |  |  | - HTTP exceptions and Bad Request errors can now be trapped so that they
 | 
					
						
							| 
									
										
										
										
											2011-08-05 18:35:41 +08:00
										 |  |  |   show up normally in the traceback.
 | 
					
						
							| 
									
										
										
										
											2011-08-05 22:43:42 +08:00
										 |  |  | - Flask in debug mode is now detecting some common problems and tries to
 | 
					
						
							|  |  |  |   warn you about them.
 | 
					
						
							| 
									
										
										
										
											2011-08-07 08:30:34 +08:00
										 |  |  | - 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.
 | 
					
						
							| 
									
										
										
										
											2011-08-07 18:43:38 +08:00
										 |  |  | - Added the ability to register callbacks that are only triggered once at
 | 
					
						
							|  |  |  |   the beginning of the first request. (:meth:`Flask.before_first_request`)
 | 
					
						
							| 
									
										
										
										
											2011-08-09 03:47:26 +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.
 | 
					
						
							| 
									
										
										
										
											2011-08-10 19:34:58 +08:00
										 |  |  | - Applications now not only have a root path where the resources and modules
 | 
					
						
							| 
									
										
										
										
											2011-10-13 16:49:51 +08:00
										 |  |  |   are located but also an instance path which is the designated place to
 | 
					
						
							| 
									
										
										
										
											2011-08-10 19:34:58 +08:00
										 |  |  |   drop files that are modified at runtime (uploads etc.).  Also this is
 | 
					
						
							| 
									
										
										
										
											2016-08-30 06:26:20 +08:00
										 |  |  |   conceptually only instance depending and outside version control so it's
 | 
					
						
							| 
									
										
										
										
											2011-08-10 19:55:57 +08:00
										 |  |  |   the perfect place to put configuration files etc.  For more information
 | 
					
						
							|  |  |  |   see :ref:`instance-folders`.
 | 
					
						
							| 
									
										
										
										
											2011-08-25 19:13:55 +08:00
										 |  |  | - Added the ``APPLICATION_ROOT`` configuration variable.
 | 
					
						
							| 
									
										
										
										
											2011-08-25 22:18:39 +08:00
										 |  |  | - Implemented :meth:`~flask.testing.TestClient.session_transaction` to
 | 
					
						
							|  |  |  |   easily modify sessions from the test environment.
 | 
					
						
							| 
									
										
										
										
											2011-08-26 03:47:50 +08:00
										 |  |  | - Refactored test client internally.  The ``APPLICATION_ROOT`` configuration
 | 
					
						
							|  |  |  |   variable as well as ``SERVER_NAME`` are now properly used by the test client
 | 
					
						
							|  |  |  |   as defaults.
 | 
					
						
							| 
									
										
										
										
											2011-08-26 05:09:48 +08:00
										 |  |  | - Added :attr:`flask.views.View.decorators` to support simpler decorating of
 | 
					
						
							| 
									
										
										
										
											2012-01-31 20:54:46 +08:00
										 |  |  |   pluggable (class-based) views.
 | 
					
						
							| 
									
										
										
										
											2011-09-30 19:03:01 +08:00
										 |  |  | - Fixed an issue where the test client if used with the "with" statement did not
 | 
					
						
							| 
									
										
										
										
											2011-08-26 21:01:46 +08:00
										 |  |  |   trigger the execution of the teardown handlers.
 | 
					
						
							| 
									
										
										
										
											2011-08-30 20:36:50 +08:00
										 |  |  | - Added finer control over the session cookie parameters.
 | 
					
						
							| 
									
										
										
										
											2011-09-18 01:39:10 +08:00
										 |  |  | - HEAD requests to a method view now automatically dispatch to the `get`
 | 
					
						
							|  |  |  |   method if no handler was implemented.
 | 
					
						
							| 
									
										
										
										
											2011-09-18 18:51:10 +08:00
										 |  |  | - Implemented the virtual :mod:`flask.ext` package to import extensions from.
 | 
					
						
							| 
									
										
										
										
											2011-09-25 02:27:38 +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.
 | 
					
						
							| 
									
										
										
										
											2011-07-07 17:27:22 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-07-16 07:16:03 +08:00
										 |  |  | Version 0.7.3
 | 
					
						
							|  |  |  | -------------
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Bugfix release, release date to be decided
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | - Fixed the Jinja2 environment's list_templates method not returning the
 | 
					
						
							|  |  |  |   correct names when blueprints or modules were involved.
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-07-06 16:18:03 +08:00
										 |  |  | Version 0.7.2
 | 
					
						
							|  |  |  | -------------
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Bugfix release, released on July 6th 2011
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | - Fixed an issue with URL processors not properly working on
 | 
					
						
							|  |  |  |   blueprints.
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-06-29 05:36:39 +08:00
										 |  |  | Version 0.7.1
 | 
					
						
							|  |  |  | -------------
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-07-06 16:26:59 +08:00
										 |  |  | Bugfix release, released on June 29th 2011
 | 
					
						
							| 
									
										
										
										
											2011-06-29 05:36:39 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | - Added missing future import that broke 2.5 compatibility.
 | 
					
						
							| 
									
										
										
										
											2011-06-30 00:31:48 +08:00
										 |  |  | - 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
 | 
					
						
							|  |  |  | -----------
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-06-28 20:36:49 +08:00
										 |  |  | Released on June 28th 2011, codename Grappa
 | 
					
						
							| 
									
										
										
										
											2010-07-27 20:40:21 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-07-28 07:39:25 +08:00
										 |  |  | - Added :meth:`~flask.Flask.make_default_options_response`
 | 
					
						
							|  |  |  |   which can be used by subclasses to alter the default
 | 
					
						
							| 
									
										
										
										
											2014-11-05 11:13:01 +08:00
										 |  |  |   behavior for ``OPTIONS`` responses.
 | 
					
						
							| 
									
										
										
										
											2010-08-07 19:02:53 +08:00
										 |  |  | - Unbound locals now raise a proper :exc:`RuntimeError` instead
 | 
					
						
							|  |  |  |   of an :exc:`AttributeError`.
 | 
					
						
							| 
									
										
										
										
											2010-08-07 19:36:39 +08:00
										 |  |  | - Mimetype guessing and etag support based on file objects is now
 | 
					
						
							|  |  |  |   deprecated for :func:`flask.send_file` because it was unreliable.
 | 
					
						
							|  |  |  |   Pass filenames instead or attach your own etags and provide a
 | 
					
						
							|  |  |  |   proper mimetype by hand.
 | 
					
						
							| 
									
										
										
										
											2010-10-19 15:09:55 +08:00
										 |  |  | - Static file handling for modules now requires the name of the
 | 
					
						
							|  |  |  |   static folder to be supplied explicitly.  The previous autodetection
 | 
					
						
							|  |  |  |   was not reliable and caused issues on Google's App Engine.  Until
 | 
					
						
							| 
									
										
										
										
											2012-04-19 23:51:38 +08:00
										 |  |  |   1.0 the old behavior will continue to work but issue dependency
 | 
					
						
							| 
									
										
										
										
											2010-10-19 15:09:55 +08:00
										 |  |  |   warnings.
 | 
					
						
							|  |  |  | - fixed a problem for Flask to run on jython.
 | 
					
						
							| 
									
										
										
										
											2014-11-05 12:10:49 +08:00
										 |  |  | - added a ``PROPAGATE_EXCEPTIONS`` configuration variable that can be
 | 
					
						
							| 
									
										
										
										
											2010-11-29 15:57:38 +08:00
										 |  |  |   used to flip the setting of exception propagation which previously
 | 
					
						
							| 
									
										
										
										
											2014-11-05 12:10:49 +08:00
										 |  |  |   was linked to ``DEBUG`` alone and is now linked to either ``DEBUG`` or
 | 
					
						
							|  |  |  |   ``TESTING``.
 | 
					
						
							| 
									
										
										
										
											2011-01-17 00:13:25 +08:00
										 |  |  | - Flask no longer internally depends on rules being added through the
 | 
					
						
							|  |  |  |   `add_url_rule` function and can now also accept regular werkzeug
 | 
					
						
							|  |  |  |   rules added to the url map.
 | 
					
						
							| 
									
										
										
										
											2011-01-24 20:50:14 +08:00
										 |  |  | - Added an `endpoint` method to the flask application object which
 | 
					
						
							|  |  |  |   allows one to register a callback to an arbitrary endpoint with
 | 
					
						
							|  |  |  |   a decorator.
 | 
					
						
							| 
									
										
										
										
											2011-02-06 00:41:02 +08:00
										 |  |  | - Use Last-Modified for static file sending instead of Date which
 | 
					
						
							|  |  |  |   was incorrectly introduced in 0.6.
 | 
					
						
							| 
									
										
										
										
											2011-02-22 04:56:37 +08:00
										 |  |  | - Added `create_jinja_loader` to override the loader creation process.
 | 
					
						
							| 
									
										
										
										
											2011-03-15 02:21:28 +08:00
										 |  |  | - Implemented a silent flag for `config.from_pyfile`.
 | 
					
						
							| 
									
										
										
										
											2011-03-15 01:00:34 +08:00
										 |  |  | - Added `teardown_request` decorator, for functions that should run at the end
 | 
					
						
							| 
									
										
										
										
											2011-05-28 02:29:03 +08:00
										 |  |  |   of a request regardless of whether an exception occurred.  Also the behavior
 | 
					
						
							|  |  |  |   for `after_request` was changed.  It's now no longer executed when an exception
 | 
					
						
							|  |  |  |   is raised.  See :ref:`upgrading-to-new-teardown-handling`
 | 
					
						
							| 
									
										
										
										
											2011-03-15 04:13:58 +08:00
										 |  |  | - Implemented :func:`flask.has_request_context`
 | 
					
						
							| 
									
										
										
										
											2011-03-18 16:15:28 +08:00
										 |  |  | - Deprecated `init_jinja_globals`.  Override the
 | 
					
						
							|  |  |  |   :meth:`~flask.Flask.create_jinja_environment` method instead to
 | 
					
						
							|  |  |  |   achieve the same functionality.
 | 
					
						
							| 
									
										
										
										
											2011-06-27 14:21:09 +08:00
										 |  |  | - Added :func:`flask.safe_join`
 | 
					
						
							| 
									
										
										
										
											2011-05-24 22:30:08 +08:00
										 |  |  | - The automatic JSON request data unpacking now looks at the charset
 | 
					
						
							|  |  |  |   mimetype parameter.
 | 
					
						
							| 
									
										
										
										
											2011-05-24 22:42:06 +08:00
										 |  |  | - Don't modify the session on :func:`flask.get_flashed_messages` if there
 | 
					
						
							|  |  |  |   are no messages in the session.
 | 
					
						
							| 
									
										
										
										
											2011-05-28 02:29:03 +08:00
										 |  |  | - `before_request` handlers are now able to abort requests with errors.
 | 
					
						
							| 
									
										
										
										
											2011-06-05 16:27:15 +08:00
										 |  |  | - 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.
 | 
					
						
							| 
									
										
										
										
											2012-01-31 20:54:46 +08:00
										 |  |  | - Implemented generic :ref:`views` (class-based views).
 | 
					
						
							| 
									
										
										
										
											2010-07-28 07:39:25 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-07-28 07:26:15 +08:00
										 |  |  | Version 0.6.1
 | 
					
						
							|  |  |  | -------------
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-12-31 22:21:46 +08:00
										 |  |  | Bugfix release, released on December 31st 2010
 | 
					
						
							| 
									
										
										
										
											2010-07-27 20:40:21 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-11-05 11:13:01 +08:00
										 |  |  | - Fixed an issue where the default ``OPTIONS`` response was
 | 
					
						
							| 
									
										
										
										
											2014-11-05 12:23:47 +08:00
										 |  |  |   not exposing all valid methods in the ``Allow`` header.
 | 
					
						
							| 
									
										
										
										
											2010-08-09 21:16:02 +08:00
										 |  |  | - Jinja2 template loading syntax now allows "./" in front of
 | 
					
						
							|  |  |  |   a template load path.  Previously this caused issues with
 | 
					
						
							|  |  |  |   module setups.
 | 
					
						
							| 
									
										
										
										
											2010-08-20 17:20:09 +08:00
										 |  |  | - Fixed an issue where the subdomain setting for modules was
 | 
					
						
							|  |  |  |   ignored for the static folder.
 | 
					
						
							| 
									
										
										
										
											2010-12-23 21:18:14 +08:00
										 |  |  | - 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-28 07:25:08 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-07-06 22:28:47 +08:00
										 |  |  | Version 0.6
 | 
					
						
							|  |  |  | -----------
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-07-27 20:38:59 +08:00
										 |  |  | Released on July 27th 2010, codename Whisky
 | 
					
						
							| 
									
										
										
										
											2010-07-06 22:28:47 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-07-13 00:04:10 +08:00
										 |  |  | - after request functions are now called in reverse order of
 | 
					
						
							|  |  |  |   registration.
 | 
					
						
							| 
									
										
										
										
											2010-07-13 05:04:24 +08:00
										 |  |  | - OPTIONS is now automatically implemented by Flask unless the
 | 
					
						
							| 
									
										
										
										
											2010-11-13 19:28:42 +08:00
										 |  |  |   application explicitly adds 'OPTIONS' as method to the URL rule.
 | 
					
						
							| 
									
										
										
										
											2010-07-13 05:04:24 +08:00
										 |  |  |   In this case no automatic OPTIONS handling kicks in.
 | 
					
						
							| 
									
										
										
										
											2010-07-14 05:14:53 +08:00
										 |  |  | - static rules are now even in place if there is no static folder
 | 
					
						
							|  |  |  |   for the module.  This was implemented to aid GAE which will
 | 
					
						
							|  |  |  |   remove the static folder if it's part of a mapping in the .yml
 | 
					
						
							|  |  |  |   file.
 | 
					
						
							| 
									
										
										
										
											2010-07-14 05:30:29 +08:00
										 |  |  | - the :attr:`~flask.Flask.config` is now available in the templates
 | 
					
						
							|  |  |  |   as `config`.
 | 
					
						
							|  |  |  | - context processors will no longer override values passed directly
 | 
					
						
							|  |  |  |   to the render function.
 | 
					
						
							| 
									
										
										
										
											2010-07-14 16:47:57 +08:00
										 |  |  | - added the ability to limit the incoming request data with the
 | 
					
						
							|  |  |  |   new ``MAX_CONTENT_LENGTH`` configuration value.
 | 
					
						
							| 
									
										
										
										
											2010-07-15 20:35:44 +08:00
										 |  |  | - the endpoint for the :meth:`flask.Module.add_url_rule` method
 | 
					
						
							|  |  |  |   is now optional to be consistent with the function of the
 | 
					
						
							|  |  |  |   same name on the application object.
 | 
					
						
							| 
									
										
										
										
											2010-07-17 17:36:16 +08:00
										 |  |  | - added a :func:`flask.make_response` function that simplifies
 | 
					
						
							|  |  |  |   creating response object instances in views.
 | 
					
						
							| 
									
										
										
										
											2010-07-17 20:39:28 +08:00
										 |  |  | - added signalling support based on blinker.  This feature is currently
 | 
					
						
							|  |  |  |   optional and supposed to be used by extensions and applications.  If
 | 
					
						
							|  |  |  |   you want to use it, make sure to have `blinker`_ installed.
 | 
					
						
							| 
									
										
										
										
											2010-11-13 19:28:42 +08:00
										 |  |  | - refactored the way URL adapters are created.  This process is now
 | 
					
						
							| 
									
										
										
										
											2010-07-17 21:56:58 +08:00
										 |  |  |   fully customizable with the :meth:`~flask.Flask.create_url_adapter`
 | 
					
						
							|  |  |  |   method.
 | 
					
						
							| 
									
										
										
										
											2010-07-23 20:29:21 +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
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-04-13 13:54:11 +08:00
										 |  |  | .. _blinker: https://pypi.org/project/blinker/
 | 
					
						
							| 
									
										
										
										
											2010-07-13 00:04:10 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-07-16 02:03:58 +08:00
										 |  |  | Version 0.5.2
 | 
					
						
							|  |  |  | -------------
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Bugfix Release, released on July 15th 2010
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | - fixed another issue with loading templates from directories when
 | 
					
						
							|  |  |  |   modules were used.
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-07-07 01:11:51 +08:00
										 |  |  | Version 0.5.1
 | 
					
						
							|  |  |  | -------------
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Bugfix Release, released on July 6th 2010
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-07-07 01:24:50 +08:00
										 |  |  | - 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
 | 
					
						
							|  |  |  | -----------
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-07-07 01:11:51 +08:00
										 |  |  | Released on July 6th 2010, codename Calvados
 | 
					
						
							| 
									
										
										
										
											2010-06-18 23:14:43 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-06-29 07:13:40 +08:00
										 |  |  | - fixed a bug with subdomains that was caused by the inability to
 | 
					
						
							|  |  |  |   specify the server name.  The server name can now be set with
 | 
					
						
							| 
									
										
										
										
											2014-11-05 12:10:49 +08:00
										 |  |  |   the ``SERVER_NAME`` config key.  This key is now also used to set
 | 
					
						
							| 
									
										
										
										
											2010-07-06 16:43:38 +08:00
										 |  |  |   the session cookie cross-subdomain wide.
 | 
					
						
							| 
									
										
										
										
											2010-07-04 17:16:24 +08:00
										 |  |  | - autoescaping is no longer active for all templates.  Instead it
 | 
					
						
							|  |  |  |   is only active for ``.html``, ``.htm``, ``.xml`` and ``.xhtml``.
 | 
					
						
							| 
									
										
										
										
											2012-04-19 23:51:38 +08:00
										 |  |  |   Inside templates this behavior can be changed with the
 | 
					
						
							| 
									
										
										
										
											2010-07-04 17:16:24 +08:00
										 |  |  |   ``autoescape`` tag.
 | 
					
						
							| 
									
										
										
										
											2010-07-04 17:37:39 +08:00
										 |  |  | - refactored Flask internally.  It now consists of more than a
 | 
					
						
							|  |  |  |   single file.
 | 
					
						
							| 
									
										
										
										
											2010-07-04 17:56:08 +08:00
										 |  |  | - :func:`flask.send_file` now emits etags and has the ability to
 | 
					
						
							|  |  |  |   do conditional responses builtin.
 | 
					
						
							| 
									
										
										
										
											2010-07-04 18:14:00 +08:00
										 |  |  | - (temporarily) dropped support for zipped applications.  This was a
 | 
					
						
							| 
									
										
										
										
											2012-04-19 23:51:38 +08:00
										 |  |  |   rarely used feature and led to some confusing behavior.
 | 
					
						
							| 
									
										
										
										
											2010-07-04 20:13:30 +08:00
										 |  |  | - added support for per-package template and static-file directories.
 | 
					
						
							| 
									
										
										
										
											2010-07-04 20:20:20 +08:00
										 |  |  | - removed support for `create_jinja_loader` which is no longer used
 | 
					
						
							|  |  |  |   in 0.5 due to the improved module support.
 | 
					
						
							| 
									
										
										
										
											2010-07-05 16:25:51 +08:00
										 |  |  | - 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
 | 
					
						
							|  |  |  | -----------
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-06-18 23:10:31 +08:00
										 |  |  | Released on June 18th 2010, codename Rakia
 | 
					
						
							| 
									
										
										
										
											2010-05-28 07:25:19 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-05-31 23:38:05 +08:00
										 |  |  | - added the ability to register application wide error handlers
 | 
					
						
							|  |  |  |   from modules.
 | 
					
						
							| 
									
										
										
										
											2010-06-03 00:32:23 +08:00
										 |  |  | - :meth:`~flask.Flask.after_request` handlers are now also invoked
 | 
					
						
							|  |  |  |   if the request dies with an exception and an error handling page
 | 
					
						
							|  |  |  |   kicks in.
 | 
					
						
							| 
									
										
										
										
											2010-06-03 21:26:07 +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.
 | 
					
						
							| 
									
										
										
										
											2010-06-03 22:21:23 +08:00
										 |  |  | - because the Python standard library caches loggers, the name of
 | 
					
						
							|  |  |  |   the logger is configurable now to better support unittests.
 | 
					
						
							| 
									
										
										
										
											2014-11-05 12:10:49 +08:00
										 |  |  | - added ``TESTING`` switch that can activate unittesting helpers.
 | 
					
						
							|  |  |  | - the logger switches to ``DEBUG`` mode now if debug is enabled.
 | 
					
						
							| 
									
										
										
										
											2010-05-31 23:38:05 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-05-29 03:06:39 +08:00
										 |  |  | Version 0.3.1
 | 
					
						
							|  |  |  | -------------
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-07-07 01:11:51 +08:00
										 |  |  | Bugfix release, released on May 28th 2010
 | 
					
						
							| 
									
										
										
										
											2010-05-29 03:06:39 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | - fixed a error reporting bug with :meth:`flask.Config.from_envvar`
 | 
					
						
							| 
									
										
										
										
											2010-05-29 03:07:28 +08:00
										 |  |  | - removed some unused code from flask
 | 
					
						
							| 
									
										
										
										
											2010-05-29 03:21:28 +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
										 |  |  | -----------
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-06-18 23:10:31 +08:00
										 |  |  | Released on May 28th 2010, codename Schnaps
 | 
					
						
							| 
									
										
										
										
											2010-05-12 07:32:29 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-05-17 06:37:55 +08:00
										 |  |  | - added support for categories for flashed messages.
 | 
					
						
							| 
									
										
										
										
											2010-05-17 22:06:30 +08:00
										 |  |  | - the application now configures a :class:`logging.Handler` and will
 | 
					
						
							|  |  |  |   log request handling exceptions to that logger when not in debug
 | 
					
						
							|  |  |  |   mode.  This makes it possible to receive mails on server errors
 | 
					
						
							|  |  |  |   for example.
 | 
					
						
							| 
									
										
										
										
											2010-05-25 00:37:48 +08:00
										 |  |  | - 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.
 | 
					
						
							| 
									
										
										
										
											2010-05-28 07:30:46 +08:00
										 |  |  | - added support for configurations.
 | 
					
						
							| 
									
										
										
										
											2010-05-17 06:37:55 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-04-21 02:21:01 +08:00
										 |  |  | Version 0.2
 | 
					
						
							|  |  |  | -----------
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-06-18 23:10:31 +08:00
										 |  |  | Released on May 12th 2010, codename Jägermeister
 | 
					
						
							| 
									
										
										
										
											2010-04-21 02:21:01 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | - various bugfixes
 | 
					
						
							|  |  |  | - integrated JSON support
 | 
					
						
							|  |  |  | - added :func:`~flask.get_template_attribute` helper function.
 | 
					
						
							|  |  |  | - :meth:`~flask.Flask.add_url_rule` can now also register a
 | 
					
						
							|  |  |  |   view function.
 | 
					
						
							| 
									
										
										
										
											2010-05-12 07:29:25 +08:00
										 |  |  | - refactored internal request dispatching.
 | 
					
						
							| 
									
										
										
										
											2010-04-21 03:45:36 +08:00
										 |  |  | - server listens on 127.0.0.1 by default now to fix issues with chrome.
 | 
					
						
							| 
									
										
										
										
											2010-05-03 01:10:44 +08:00
										 |  |  | - added external URL support.
 | 
					
						
							| 
									
										
										
										
											2010-05-10 17:27:42 +08:00
										 |  |  | - added support for :func:`~flask.send_file`
 | 
					
						
							| 
									
										
										
										
											2010-05-04 22:41:04 +08:00
										 |  |  | - module support and internal request handling refactoring
 | 
					
						
							|  |  |  |   to better support pluggable applications.
 | 
					
						
							| 
									
										
										
										
											2010-05-12 07:29:25 +08:00
										 |  |  | - 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
 | 
					
						
							|  |  |  | -----------
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | First public preview release.
 |