Added in version 0.7: The static_url_path, static_folder, and template_folder
parameters were added.

Changed in version 0.7: This no longer does the exception handling, this code was
moved to the new full_dispatch_request().

Added in version 0.7: The use_cookies parameter was added as well as the ability
to override the client to be used by setting the
test_client_class attribute.

Changed in version 0.7: Teardown events for the request and app contexts are called
even if an unhandled error occurs. Other events may not be
called depending on when an error occurs during dispatch.
See callbacks-and-errors.

Changed in version 0.7: MIME guessing and etag support for file-like objects was
removed because it was unreliable. Pass a filename if you are
able to, otherwise attach an etag yourself.

Added in version 0.8: The instance_path and instance_relative_config parameters were
added.

Changed in version 0.11: Environment.auto_reload set in accordance with
TEMPLATES_AUTO_RELOAD configuration option.

Changed in version 0.11: Added **kwargs to support passing additional keyword arguments to
the constructor of test_client_class.

Changed in version 0.11: Added support for serializing top-level arrays. This was a
security risk in ancient browsers. See security-json.

Added in version 1.0: The host_matching and static_host parameters were added.

Added in version 1.0: The subdomain_matching parameter was added. Subdomain
matching needs to be enabled manually now. Setting
SERVER_NAME does not implicitly enable it.

Changed in version 1.0: SERVER_NAME no longer implicitly enables subdomain
matching. Use subdomain_matching instead.

Changed in version 1.0: Exceptions are looked up by code and by MRO, so
HTTPException subclasses can be handled with a catch-all
handler for the base HTTPException.

Changed in version 1.0: Key errors raised from request data like form show the
bad key in debug mode rather than a generic bad request
message.

Changed in version 1.0: If installed, python-dotenv will be used to load environment
variables from .env and .flaskenv files.The FLASK_DEBUG environment variable will override debug.Threaded mode is enabled by default.

Changed in version 1.0: If installed, python-dotenv will be used to load environment variables
from .env and .flaskenv files.

Changed in version 1.0: UTF-8 filenames as specified in RFC 2231 are supported.

Changed in version 1.0: JSON support is added to the response, like the request. This is useful
when testing to get the test client response data as JSON.

Changed in version 0.9: This can be called outside a request when the URL adapter is created
for an application context.

Changed in version 0.9: Previously a tuple was interpreted as the arguments for the
response object.

Changed in version 0.9: cache_timeout defaults to
Flask.get_send_file_max_age().

Changed in version 0.9: The _anchor and _method parameters were added.

Changed in version 0.9: Calls app.handle_url_build_error on build errors.

Changed in version 2.0: The default configuration is None instead of 12 hours.

Changed in version 2.0: The current directory is not changed to the location of the
loaded file.

Changed in version 2.0: When loading the env files, set the default encoding to UTF-8.

Changed in version 2.0: download_name replaces the attachment_filename
parameter. If as_attachment=False, it is passed with
Content-Disposition: inline instead.

Changed in version 2.0: max_age replaces the cache_timeout parameter.
conditional is enabled and max_age is not set by
default.

Changed in version 2.0: etag replaces the add_etags parameter. It can be a
string to use instead of generating one.

Changed in version 2.0: Passing a file-like object that inherits from
TextIOBase will raise a ValueError rather
than sending an empty file.

Added in version 2.0: Moved the implementation to Werkzeug. This is now a wrapper to
pass some Flask-specific arguments.

Changed in version 2.0: The request input stream is closed when calling
response.close(). Input streams for redirects are
automatically closed.

Changed in version 2.0: Writing to a binary file, and the encoding argument, will be
removed in Flask 2.1.

Changed in version 2.0: encoding will be removed in Flask 2.1. The file must be text
mode, or binary mode with UTF-8 bytes.

Changed in version 2.0: encoding will be removed in Flask 2.1. The data must be a
string or UTF-8 bytes.

Changed in version 0.5: As of Flask 0.5 the functions registered for after request
execution are called in reverse order of registration.

Changed in version 0.5: The add_etags, cache_timeout and conditional
parameters were added. The default behavior is to add etags.

Changed in version 0.5: If a dict is provided as file in the dict for the data
parameter the content type has to be called content_type
instead of mimetype. This change was made for
consistency with werkzeug.FileWrapper.

Changed in version 3.1: If SERVER_NAME is set, it does not restrict requests to
only that domain, for both subdomain_matching and
host_matching.

Changed in version 3.1: -e path takes precedence over default .env and .flaskenv files.

Changed in version 3.1: Added the load_dotenv_defaults parameter and attribute.

Changed in version 3.1: Added the load_defaults parameter. A given path takes precedence
over default files.

Changed in version 3.1: This is configurable through Flask config.

Changed in version 0.6: This is configurable through Flask config.

Changed in version 1.1.0: Always passes the InternalServerError instance to the
handler, setting original_exception to the unhandled
error.

Changed in version 1.1.0: after_request functions and other finalization is done
even for the default 500 response when there is no handler.

Changed in version 1.1.0: Returns False when python-dotenv is not installed, or when
the given path isn't a file.

Changed in version 1.0.3: RoutingException, used internally for actions such as
 slash redirects during routing, is not passed to error
 handlers.

Changed in version 1.0.3: Filenames are encoded with ASCII instead of Latin-1 for broader
compatibility with WSGI servers.

Changed in version 1.0.3: app can be passed directly, rather than requiring an app
context for configuration.

Changed in version 2.2: A generator will be converted to a streaming response.
A list will be converted to a JSON response.

Added in version 2.2: Moved from flask.url_for, which calls this method.

Changed in version 2.2: Added the -A/--app, --debug/--no-debug, -e/--env-file options.

Changed in version 2.2: An app context is pushed when running app.cli commands, so
@with_appcontext is no longer required for those commands.

Changed in version 2.2: The app context is active for subcommands as well as the
decorated callback. The app context is always available to
app.cli command and parameter callbacks.

Added in version 2.2: Calls current_app.aborter if available instead of always
using Werkzeug's default abort.

Added in version 2.2: Calls current_app.redirect if available instead of always
using Werkzeug's default redirect.

Changed in version 2.2: Calls current_app.url_for, allowing an app to override the
behavior.

Changed in version 2.2: Added the init_every_request class attribute.

Changed in version 2.2: Calls current_app.json.dump, allowing an app to override
the behavior.

Changed in version 2.2: Calls current_app.json.dumps, allowing an app to override

Changed in version 2.2: Calls current_app.json.response, allowing an app to override

Changed in version 2.2: Calls current_app.json.load, allowing an app to override

Changed in version 2.2: The app parameter will be removed in Flask 2.3.

Changed in version 2.2: Calls current_app.json.loads, allowing an app to override

Changed in version 1.1: A dict will be converted to a JSON response.

Changed in version 1.1: The current session object is used instead of reloading the original
data. This prevents flask.session pointing to an out-of-date object.

Changed in version 1.1: Passing a BytesIO object supports range requests.

Changed in version 0.10: The default port is now picked from the SERVER_NAME
variable.

Changed in version 0.4: added support for with block usage for the client.

Changed in version 2.3: Not set by default, does not fall back to SERVER_NAME.

Changed in version 2.1: This is disabled by default, so responses will send relative
redirects.

Changed in version 0.12: The filename is no longer automatically inferred from file
objects. If you want to use automatic MIME and etag support,
pass a filename via filename_or_fp or
attachment_filename.

Changed in version 0.12: attachment_filename is preferred over filename for MIME
detection.

Changed in version 0.12: app.test_client() includes preset default environment, which can be
set after instantiation of the app.test_client() object in
client.environ_base.

Changed in version 2.0.2: decimal.Decimal is supported by converting to a string.

explain_template_loading_attempts() (in module flask.debughelpers)

digest_method() (flask.sessions.SecureCookieSessionInterface static method)

get_signing_serializer() (flask.sessions.SecureCookieSessionInterface method)

key_derivation (flask.sessions.SecureCookieSessionInterface attribute)

open_session() (flask.sessions.SecureCookieSessionInterface method)

save_session() (flask.sessions.SecureCookieSessionInterface method)

serializer (flask.sessions.SecureCookieSessionInterface attribute)

session_class (flask.sessions.SecureCookieSessionInterface attribute)

get_cookie_partitioned() (flask.sessions.SessionInterface method)

list_templates() (flask.templating.DispatchingJinjaLoader method)

default() (flask.json.provider.DefaultJSONProvider static method)

ensure_ascii (flask.json.provider.DefaultJSONProvider attribute)