Flask v2.0.0 Release Notes

  • ๐Ÿš€ Unreleased

    • ๐Ÿ‘ Drop support for Python 2 and 3.5.
    • ๐Ÿ‘ JSON support no longer uses simplejson. To use another JSON module, override app.json_encoder and json_decoder. :issue:3555
    • ๐Ÿ—„ The encoding option to JSON functions is deprecated. :pr:3562
    • ๐Ÿ—„ Passing script_info to app factory functions is deprecated. This was not portable outside the flask command. Use click.get_current_context().obj if it's needed. :issue:3552
    • ๐Ÿ‘ The CLI shows better error messages when the app failed to load when looking up commands. :issue:2741
    • Add :meth:sessions.SessionInterface.get_cookie_name to allow setting the session cookie name dynamically. :pr:3369
    • Add :meth:Config.from_file to load config using arbitrary file loaders, such as toml.load or json.load. :meth:Config.from_json is deprecated in favor of this. :pr:3398
    • The flask run command will only defer errors on reload. Errors present during the initial call will cause the server to exit with the traceback immediately. :issue:3431
    • :func:send_file raises a :exc:ValueError when passed an :mod:io object in text mode. Previously, it would respond with 200 OK and an empty file. :issue:3358
    • When using ad-hoc certificates, check for the cryptography library instead of PyOpenSSL. :pr:3492
    • When specifying a factory function with FLASK_APP, keyword argument can be passed. :issue:3553
    • When loading a .env or .flaskenv file, the current working directory is no longer changed to the location of the file. :pr:3560
    • When returning a (response, headers) tuple from a view, the headers replace rather than extend existing headers on the response. For example, this allows setting the Content-Type for jsonify(). Use response.headers.extend() if extending is desired. :issue:3628
    • The Scaffold class provides a common API for the Flask and Blueprint classes. Blueprint information is stored in attributes just like Flask, rather than opaque lambda functions. This is intended to improve consistency and maintainability. :issue:3215
    • Include samesite and secure options when removing the session cookie. :pr:3726
    • ๐Ÿ‘ Support passing a pathlib.Path to static_folder. :pr:3579
    • send_file and send_from_directory are wrappers around the implementations in werkzeug.utils. :pr:3828
    • Some send_file parameters have been renamed, the old names are deprecated. attachment_filename is renamed to download_name. cache_timeout is renamed to max_age. :pr:3828
    • send_file passes download_name even if as_attachment=False by using Content-Disposition: inline. :pr:3828
    • send_file sets conditional=True and max_age=None by default. Cache-Control is set to no-cache if max_age is not set, otherwise public. This tells browsers to validate conditional requests instead of using a timed cache. :pr:3828
    • ๐Ÿ—„ helpers.safe_join is deprecated. Use werkzeug.utils.safe_join instead. :pr:3828