Flask Version 0.8 to Version 0.9

Version 0.8

Released on September 29th 2011, codename Rakija

  • Refactored session support into a session interface so that
    the implementation of the sessions can be changed without
    having to override the Flask class.
  • Empty session cookies are now deleted properly automatically.
  • View functions can now opt out of getting the automatic
    OPTIONS implementation.
  • HTTP exceptions and Bad Request errors can now be trapped so that they
    show up normally in the traceback.
  • Flask in debug mode is now detecting some common problems and tries to
    warn you about them.
  • Flask in debug mode will now complain with an assertion error if a view
    was attached after the first request was handled. This gives earlier
    feedback when users forget to import view code ahead of time.
  • Added the ability to register callbacks that are only triggered once at
    the beginning of the first request. (Flask.before_first_request())
  • Malformed JSON data will now trigger a bad request HTTP exception instead
    of a value error which usually would result in a 500 internal server
    error if not handled. This is a backwards incompatible change.
  • Applications now not only have a root path where the resources and modules
    are located but also an instance path which is the designated place to
    drop files that are modified at runtime (uploads etc.). Also this is
    conceptionally only instance depending and outside version control so it’s
    the perfect place to put configuration files etc. For more information
    see 实例文件夹.
  • Added the APPLICATION_ROOT configuration variable.
  • Implemented session_transaction() to
    easily modify sessions from the test environment.
  • Refactored test client internally. The APPLICATION_ROOT configuration
    variable as well as SERVER_NAME are now properly used by the test client
    as defaults.
  • Added flask.views.View.decorators to support simpler decorating of
    pluggable (class-based) views.
  • Fixed an issue where the test client if used with the “with” statement did not
    trigger the execution of the teardown handlers.
  • Added finer control over the session cookie parameters.
  • HEAD requests to a method view now automatically dispatch to the get
    method if no handler was implemented.
  • Implemented the virtual flask.ext package to import extensions from.
  • 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.

Version 0.8.1

Bugfix release, released on July 1st 2012

  • 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.

Version 0.9

Released on July 1st 2012, codename Campari.

  • The flask.Request.on_json_loading_failed() now returns a JSON formatted
    response by default.
  • The flask.url_for() function now can generate anchors to the
    generated links.
  • The flask.url_for() function now can also explicitly generate
    URL rules specific to a given HTTP method.
  • Logger now only returns the debug log setting if it was not set
    explicitly.
  • Unregister a circular dependency between the WSGI environment and
    the request object when shutting down the request. This means that
    environ werkzeug.request will be None after the response was
    returned to the WSGI server but has the advantage that the garbage
    collector is not needed on CPython to tear down the request unless
    the user created circular dependencies themselves.
  • Session is now stored after callbacks so that if the session payload
    is stored in the session you can still modify it in an after
    request callback.
  • The 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, flask.Blueprint.app_template_filter().
  • The Flask and Blueprint classes now have a non-decorator method for adding
    custom template filters application wide,
    flask.Flask.add_template_filter() and
    flask.Blueprint.add_app_template_filter().
  • The flask.get_flashed_messages() function now allows rendering flashed
    message categories in separate blocks, through a category_filter
    argument.
  • The flask.Flask.run() method now accepts None for host and port
    arguments, using default values when None. This allows for calling run
    using configuration values, e.g. app.run(app.config.get('MYHOST'),
    app.config.get('MYPORT')), with proper behavior whether or not a config
    file is provided.
  • The 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.
  • Added 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.
  • View functions can now return a tuple with the first instance being an
    instance of flask.Response. This allows for returning
    jsonify(error=”error msg”), 400 from a view function.
  • Flask and Blueprint now provide a
    get_send_file_max_age() hook for subclasses to override
    behavior of serving static files from Flask when using
    flask.Flask.send_static_file() (used for the default static file
    handler) and 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.
  • Fixed an assumption in sessions implementation which could break message
    flashing on sessions implementations which use external storage.
  • Changed the behavior of tuple return values from functions. They are no
    longer arguments to the response object, they now have a defined meaning.
  • Added flask.Flask.request_globals_class to allow a specific class to
    be used on creation of the g instance of each request.
  • Added required_methods attribute to view functions to force-add methods
    on registration.
  • Added flask.after_this_request().
  • Added flask.stream_with_context() and the ability to push contexts
    multiple times without producing unexpected behavior.

作者:唐伯虎点蚊香,如若转载,请注明出处:https://www.web176.com/flask2/21586.html

(0)
打赏 支付宝 支付宝 微信 微信
唐伯虎点蚊香的头像唐伯虎点蚊香
上一篇 2023年5月18日
下一篇 2023年5月18日

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注