979 lines
44 KiB
ReStructuredText
979 lines
44 KiB
ReStructuredText
.. currentmodule:: flask
|
|
|
|
Version 1.1.0
|
|
-------------
|
|
|
|
Unreleased
|
|
|
|
- Bump minimum Werkzeug version to >= 0.15.
|
|
- Drop support for Python 3.4.
|
|
- Error handlers for ÁÁInternalServerErrorÁÁ or ÁÁ500ÁÁ will always be
|
|
passed an instance of ÁÁInternalServerErrorÁÁ. If they are invoked
|
|
due to an unhandled exception, that original exception is now
|
|
available as ÁÁe.original_exceptionÁÁ rather than being passed
|
|
directly to the handler. The same is true if the handler is for the
|
|
base ÁÁHTTPExceptionÁÁ. This makes error handler behavior more
|
|
consistent. :pr:Á3266Á
|
|
|
|
- :meth:ÁFlask.finalize_requestÁ is called for all unhandled
|
|
exceptions even if there is no ÁÁ500ÁÁ error handler.
|
|
|
|
- :meth:Áflask.RequestContext.copyÁ includes the current session
|
|
object in the request context copy. This prevents ÁÁsessionÁÁ
|
|
pointing to an out-of-date object. :issue:Á2935Á
|
|
- Using built-in RequestContext, unprintable Unicode characters in
|
|
Host header will result in a HTTP 400 response and not HTTP 500 as
|
|
previously. :pr:Á2994Á
|
|
- :func:Ásend_fileÁ supports :class:Á~os.PathLikeÁ objects as
|
|
described in PEP 0519, to support :mod:ÁpathlibÁ in Python 3.
|
|
:pr:Á3059Á
|
|
- :func:Ásend_fileÁ supports :class:Á~io.BytesIOÁ partial content.
|
|
:issue:Á2957Á
|
|
- :func:Áopen_resourceÁ accepts the "rt" file mode. This still does
|
|
the same thing as "r". :issue:Á3163Á
|
|
- The :attr:ÁMethodView.methodsÁ attribute set in a base class is used
|
|
by subclasses. :issue:Á3138Á
|
|
- :attr:ÁFlask.jinja_optionsÁ is a ÁÁdictÁÁ instead of an
|
|
ÁÁImmutableDictÁÁ to allow easier configuration. Changes must still
|
|
be made before creating the environment. :pr:Á3190Á
|
|
- Flask©s ÁÁJSONMixinÁÁ for the request and response wrappers was
|
|
moved into Werkzeug. Use Werkzeug©s version with Flask-specific
|
|
support. This bumps the Werkzeug dependency to >= 0.15.
|
|
:issue:Á3125Á
|
|
- The ÁÁflaskÁÁ command entry point is simplified to take advantage
|
|
of Werkzeug 0.15©s better reloader support. This bumps the Werkzeug
|
|
dependency to >= 0.15. :issue:Á3022Á
|
|
- Support ÁÁstatic_url_pathÁÁ that ends with a forward slash.
|
|
:issue:Á3134Á
|
|
- Support empty ÁÁstatic_folderÁÁ without requiring setting an empty
|
|
ÁÁstatic_url_pathÁÁ as well. :pr:Á3124Á
|
|
- :meth:ÁjsonifyÁ supports :class:Ádataclasses.dataclassÁ objects.
|
|
:pr:Á3195Á
|
|
- Allow customizing the :attr:ÁFlask.url_map_classÁ used for routing.
|
|
:pr:Á3069Á
|
|
- The development server port can be set to 0, which tells the OS to
|
|
pick an available port. :issue:Á2926Á
|
|
- The return value from :meth:Ácli.load_dotenvÁ is more consistent
|
|
with the documentation. It will return ÁÁFalseÁÁ if python-dotenv is
|
|
not installed, or if the given path isn©t a file. :issue:Á2937Á
|
|
- Signaling support has a stub for the ÁÁconnect_viaÁÁ method when
|
|
the Blinker library is not installed. :pr:Á3208Á
|
|
- Add an ÁÁ--extra-filesÁÁ option to the ÁÁflask runÁÁ CLI command to
|
|
specify extra files that will trigger the reloader on change.
|
|
:issue:Á2897Á
|
|
- Allow returning a dictionary from a view function. Similar to how
|
|
returning a string will produce a ÁÁtext/htmlÁÁ response, returning
|
|
a dict will call ÁÁjsonifyÁÁ to produce a ÁÁapplication/jsonÁÁ
|
|
response. :pr:Á3111Á
|
|
- Blueprints have a ÁÁcliÁÁ Click group like ÁÁapp.cliÁÁ. CLI commands
|
|
registered with a blueprint will be available as a group under the
|
|
ÁÁflaskÁÁ command. :issue:Á1357Á.
|
|
- When using the test client as a context manager (ÁÁwith client:ÁÁ),
|
|
all preserved request contexts are popped when the block exits,
|
|
ensuring nested contexts are cleaned up correctly. :pr:Á3157Á
|
|
- Show a better error message when the view return type is not
|
|
supported. :issue:Á3214Á
|
|
- ÁÁflask.testing.make_test_environ_builder()ÁÁ has been deprecated in
|
|
favour of a new class ÁÁflask.testing.EnvironBuilderÁÁ. :pr:Á3232Á
|
|
- The ÁÁflask runÁÁ command no longer fails if Python is not built
|
|
with SSL support. Using the ÁÁ--certÁÁ option will show an
|
|
appropriate error message. :issue:Á3211Á
|
|
- URL matching now occurs after the request context is pushed, rather
|
|
than when it©s created. This allows custom URL converters to access
|
|
the app and request contexts, such as to query a database for an id.
|
|
:issue:Á3088Á
|
|
|
|
|
|
Version 1.0.4
|
|
-------------
|
|
|
|
Unreleased
|
|
|
|
- The key information for ÁÁBadRequestKeyErrorÁÁ is no longer cleared
|
|
outside debug mode, so error handlers can still access it. This
|
|
requires upgrading to Werkzeug 0.15.5. :issue:Á3249Á
|
|
|
|
|
|
Version 1.0.3
|
|
-------------
|
|
|
|
Released 2019-05-17
|
|
|
|
- :func:Ásend_fileÁ encodes filenames as ASCII instead of Latin-1
|
|
(ISO-8859-1). This fixes compatibility with Gunicorn, which is
|
|
stricter about header encodings than PEP 3333. :issue:Á2766Á
|
|
- Allow custom CLIs using ÁÁFlaskGroupÁÁ to set the debug flag without
|
|
it always being overwritten based on environment variables.
|
|
:pr:Á2765Á
|
|
- ÁÁflask --versionÁÁ outputs Werkzeug©s version and simplifies the
|
|
Python version. :pr:Á2825Á
|
|
- :func:Ásend_fileÁ handles an ÁÁattachment_filenameÁÁ that is a
|
|
native Python 2 string (bytes) with UTF-8 coded bytes. :issue:Á2933Á
|
|
- A catch-all error handler registered for ÁÁHTTPExceptionÁÁ will not
|
|
handle ÁÁRoutingExceptionÁÁ, which is used internally during
|
|
routing. This fixes the unexpected behavior that had been introduced
|
|
in 1.0. :pr:Á2986Á
|
|
- Passing the ÁÁjsonÁÁ argument to ÁÁapp.test_clientÁÁ does not
|
|
push/pop an extra app context. :issue:Á2900Á
|
|
|
|
|
|
Version 1.0.2
|
|
-------------
|
|
|
|
Released 2018-05-02
|
|
|
|
- Fix more backwards compatibility issues with merging slashes between
|
|
a blueprint prefix and route. :pr:Á2748Á
|
|
- Fix error with ÁÁflask routesÁÁ command when there are no routes.
|
|
:issue:Á2751Á
|
|
|
|
|
|
Version 1.0.1
|
|
-------------
|
|
|
|
Released 2018-04-29
|
|
|
|
- Fix registering partials (with no ÁÁ__name__ÁÁ) as view functions.
|
|
:pr:Á2730Á
|
|
- Don©t treat lists returned from view functions the same as tuples.
|
|
Only tuples are interpreted as response data. :issue:Á2736Á
|
|
- Extra slashes between a blueprint©s ÁÁurl_prefixÁÁ and a route URL
|
|
are merged. This fixes some backwards compatibility issues with the
|
|
change in 1.0. :issue:Á2731Á, :issue:Á2742Á
|
|
- Only trap ÁÁBadRequestKeyErrorÁÁ errors in debug mode, not all
|
|
ÁÁBadRequestÁÁ errors. This allows ÁÁabort(400)ÁÁ to continue
|
|
working as expected. :issue:Á2735Á
|
|
- The ÁÁFLASK_SKIP_DOTENVÁÁ environment variable can be set to ÁÁ1ÁÁ
|
|
to skip automatically loading dotenv files. :issue:Á2722Á
|
|
|
|
|
|
Version 1.0
|
|
-----------
|
|
|
|
Released 2018-04-26
|
|
|
|
- Python 2.6 and 3.3 are no longer supported.
|
|
- Bump minimum dependency versions to the latest stable versions:
|
|
Werkzeug >= 0.14, Jinja >= 2.10, itsdangerous >= 0.24, Click >= 5.1.
|
|
:issue:Á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. :pr:Á2193Á
|
|
- :meth:ÁFlask.__init__ <Flask>Á accepts the ÁÁhost_matchingÁÁ
|
|
argument and sets it on :attr:Á~Flask.url_mapÁ. :issue:Á1559Á
|
|
- :meth:ÁFlask.__init__ <Flask>Á accepts the ÁÁstatic_hostÁÁ argument
|
|
and passes it as the ÁÁhostÁÁ argument when defining the static
|
|
route. :issue:Á1559Á
|
|
- :func:Ásend_fileÁ supports Unicode in ÁÁattachment_filenameÁÁ.
|
|
:pr:Á2223Á
|
|
- Pass ÁÁ_schemeÁÁ argument from :func:Áurl_forÁ to
|
|
:meth:Á~Flask.handle_url_build_errorÁ. :pr:Á2017Á
|
|
- :meth:Á~Flask.add_url_ruleÁ accepts the
|
|
ÁÁprovide_automatic_optionsÁÁ argument to disable adding the
|
|
ÁÁOPTIONSÁÁ method. :pr:Á1489Á
|
|
- :class:Á~views.MethodViewÁ subclasses inherit method handlers from
|
|
base classes. :pr:Á1936Á
|
|
- Errors caused while opening the session at the beginning of the
|
|
request are handled by the app©s error handlers. :pr:Á2254Á
|
|
- Blueprints gained :attr:Á~Blueprint.json_encoderÁ and
|
|
:attr:Á~Blueprint.json_decoderÁ attributes to override the app©s
|
|
encoder and decoder. :pr:Á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. :pr:Á2256Á
|
|
- Add ÁÁroutesÁÁ CLI command to output routes registered on the
|
|
application. :pr:Á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. :pr:Á2282Á
|
|
- Allow IP address as exact session cookie domain. :pr:Á2282Á
|
|
- ÁÁSESSION_COOKIE_DOMAINÁÁ is set if it is detected through
|
|
ÁÁSERVER_NAMEÁÁ. :pr:Á2282Á
|
|
- Auto-detect zero-argument app factory called ÁÁcreate_appÁÁ or
|
|
ÁÁmake_appÁÁ from ÁÁFLASK_APPÁÁ. :pr:Á2297Á
|
|
- Factory functions are not required to take a ÁÁscript_infoÁÁ
|
|
parameter to work with the ÁÁflaskÁÁ command. If they take a single
|
|
parameter or a parameter named ÁÁscript_infoÁÁ, the
|
|
:class:Á~cli.ScriptInfoÁ object will be passed. :pr:Á2319Á
|
|
- ÁÁFLASK_APPÁÁ can be set to an app factory, with arguments if
|
|
needed, for example ÁÁFLASK_APP=myproject.app:create_app(©dev©)ÁÁ.
|
|
:pr:Á2326Á
|
|
- ÁÁFLASK_APPÁÁ can point to local packages that are not installed in
|
|
editable mode, although ÁÁpip install -eÁÁ is still preferred.
|
|
:pr:Á2414Á
|
|
- 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Á. :pr:Á2316Á
|
|
- Error handling will try handlers registered for ÁÁblueprint, codeÁÁ,
|
|
ÁÁapp, codeÁÁ, ÁÁblueprint, exceptionÁÁ, ÁÁapp, exceptionÁÁ.
|
|
:pr:Á2314Á
|
|
- ÁÁCookieÁÁ is added to the response©s ÁÁVaryÁÁ header if the session
|
|
is accessed at all during the request (and not deleted). :pr:Á2288Á
|
|
- :meth:Á~Flask.test_request_contextÁ accepts ÁÁsubdomainÁÁ and
|
|
ÁÁurl_schemeÁÁ arguments for use when building the base URL.
|
|
:pr:Á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. :pr:Á2348Á
|
|
- Allow registering new tags with
|
|
:class:Á~json.tag.TaggedJSONSerializerÁ to support storing other
|
|
types in the session cookie. :pr:Á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.
|
|
:pr:Á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. :pr:Á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. :pr:Á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. :pr:Á2362Á
|
|
- Fix incorrect JSON encoding of aware, non-UTC datetimes. :pr:Á2374Á
|
|
- Template auto reloading will honor debug mode even even if
|
|
:attr:Á~Flask.jinja_envÁ was already accessed. :pr:Á2373Á
|
|
- The following old deprecated code was removed. :issue:Á2385Á
|
|
|
|
- ÁÁflask.extÁÁ - import extensions directly by their name instead
|
|
of through the ÁÁflask.extÁÁ namespace. For example,
|
|
ÁÁimport flask.ext.sqlalchemyÁÁ becomes
|
|
ÁÁimport flask_sqlalchemyÁÁ.
|
|
- ÁÁFlask.init_jinja_globalsÁÁ - extend
|
|
: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.
|
|
|
|
- The :attr:ÁRequest.jsonÁ property is no longer deprecated.
|
|
:issue:Á1421Á
|
|
- Support passing a :class:Á~werkzeug.test.EnvironBuilderÁ or ÁÁdictÁÁ
|
|
to :meth:Átest_client.open <werkzeug.test.Client.open>Á. :pr:Á2412Á
|
|
- The ÁÁflaskÁÁ command and :meth:ÁFlask.runÁ will load environment
|
|
variables from ÁÁ.envÁÁ and ÁÁ.flaskenvÁÁ files if python-dotenv is
|
|
installed. :pr:Á2416Á
|
|
- When passing a full URL to the test client, the scheme in the URL is
|
|
used instead of :data:ÁPREFERRED_URL_SCHEMEÁ. :pr:Á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. :pr:Á2436Á
|
|
- Blueprint view function names may not contain dots. :pr:Á2450Á
|
|
- Fix a ÁÁValueErrorÁÁ caused by invalid ÁÁRangeÁÁ requests in some
|
|
cases. :issue:Á2526Á
|
|
- The development server uses threads by default. :pr:Á2529Á
|
|
- Loading config files with ÁÁsilent=TrueÁÁ will ignore
|
|
:data:Á~errno.ENOTDIRÁ errors. :pr:Á2581Á
|
|
- Pass ÁÁ--certÁÁ and ÁÁ--keyÁÁ options to ÁÁflask runÁÁ to run the
|
|
development server over HTTPS. :pr:Á2606Á
|
|
- Added :data:ÁSESSION_COOKIE_SAMESITEÁ to control the ÁÁSameSiteÁÁ
|
|
attribute on the session cookie. :pr:Á2607Á
|
|
- Added :meth:Á~flask.Flask.test_cli_runnerÁ to create a Click runner
|
|
that can invoke Flask CLI commands for testing. :pr:Á2636Á
|
|
- Subdomain matching is disabled by default and setting
|
|
:data:ÁSERVER_NAMEÁ does not implicitly enable it. It can be enabled
|
|
by passing ÁÁsubdomain_matching=TrueÁÁ to the ÁÁFlaskÁÁ constructor.
|
|
:pr:Á2635Á
|
|
- A single trailing slash is stripped from the blueprint
|
|
ÁÁurl_prefixÁÁ when it is registered with the app. :pr:Á2629Á
|
|
- :meth:ÁRequest.get_jsonÁ doesn©t cache the result if parsing fails
|
|
when ÁÁsilentÁÁ is true. :issue:Á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. :pr:Á2691Á
|
|
- Added :data:ÁMAX_COOKIE_SIZEÁ and :attr:ÁResponse.max_cookie_sizeÁ
|
|
to control when Werkzeug warns about large cookies that browsers may
|
|
ignore. :pr:Á2693Á
|
|
- Updated documentation theme to make docs look better in small
|
|
windows. :pr:Á2709Á
|
|
- Rewrote the tutorial docs and example project to take a more
|
|
structured approach to help new users avoid common pitfalls.
|
|
:pr:Á2676Á
|
|
|
|
|
|
Version 0.12.4
|
|
--------------
|
|
|
|
Released 2018-04-29
|
|
|
|
- Repackage 0.12.3 to fix package layout issue. :issue:Á2728Á
|
|
|
|
|
|
Version 0.12.3
|
|
--------------
|
|
|
|
Released 2018-04-26
|
|
|
|
- :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. :issue:Á2692Á
|
|
- Fix a Python warning about imports when using ÁÁpython -m flaskÁÁ.
|
|
:issue:Á2666Á
|
|
- Fix a ÁÁValueErrorÁÁ caused by invalid ÁÁRangeÁÁ requests in some
|
|
cases.
|
|
|
|
|
|
Version 0.12.2
|
|
--------------
|
|
|
|
Released 2017-05-16
|
|
|
|
- Fix a bug in ÁÁsafe_joinÁÁ on Windows.
|
|
|
|
|
|
Version 0.12.1
|
|
--------------
|
|
|
|
Released 2017-03-31
|
|
|
|
- Prevent ÁÁflask runÁÁ from showing a ÁÁNoAppExceptionÁÁ when an
|
|
ÁÁImportErrorÁÁ occurs within the imported application module.
|
|
- Fix encoding behavior of ÁÁapp.config.from_pyfileÁÁ for Python 3.
|
|
:issue:Á2118Á
|
|
- Use the ÁÁSERVER_NAMEÁÁ config if it is present as default values
|
|
for ÁÁapp.runÁÁ. :issue:Á2109Á, :pr:Á2152Á
|
|
- Call ÁÁctx.auto_popÁÁ with the exception object instead of ÁÁNoneÁÁ,
|
|
in the event that a ÁÁBaseExceptionÁÁ such as ÁÁKeyboardInterruptÁÁ
|
|
is raised in a request handler.
|
|
|
|
|
|
Version 0.12
|
|
------------
|
|
|
|
Released 2016-12-21, codename Punsch
|
|
|
|
- The cli command now responds to ÁÁ--versionÁÁ.
|
|
- Mimetype guessing and ETag generation for file-like objects in
|
|
ÁÁsend_fileÁÁ has been removed. :issue:Á104Á, :prÁ1849Á
|
|
- Mimetype guessing in ÁÁsend_fileÁÁ now fails loudly and doesn©t fall
|
|
back to ÁÁapplication/octet-streamÁÁ. :pr:Á1988Á
|
|
- Make ÁÁflask.safe_joinÁÁ able to join multiple paths like
|
|
ÁÁos.path.joinÁÁ :pr:Á1730Á
|
|
- Revert a behavior change that made the dev server crash instead of
|
|
returning an Internal Server Error. :pr:Á2006Á
|
|
- Correctly invoke response handlers for both regular request
|
|
dispatching as well as error handlers.
|
|
- Disable logger propagation by default for the app logger.
|
|
- Add support for range requests in ÁÁsend_fileÁÁ.
|
|
- ÁÁapp.test_clientÁÁ includes preset default environment, which can
|
|
now be directly set, instead of per ÁÁclient.getÁÁ.
|
|
- Fix crash when running under PyPy3. :pr:Á1814Á
|
|
|
|
|
|
Version 0.11.1
|
|
--------------
|
|
|
|
Released 2016-06-07
|
|
|
|
- Fixed a bug that prevented ÁÁFLASK_APP=foobar/__init__.pyÁÁ from
|
|
working. :pr:Á1872Á
|
|
|
|
|
|
Version 0.11
|
|
------------
|
|
|
|
Released 2016-05-29, codename Absinthe
|
|
|
|
- Added support to serializing top-level arrays to
|
|
:func:Áflask.jsonifyÁ. This introduces a security risk in ancient
|
|
browsers. See :ref:Ájson-securityÁ for details.
|
|
- Added before_render_template signal.
|
|
- Added ÁÁ**kwargsÁÁ to :meth:Áflask.Test.test_clientÁ to support
|
|
passing additional keyword arguments to the constructor of
|
|
:attr:Áflask.Flask.test_client_classÁ.
|
|
- Added ÁÁSESSION_REFRESH_EACH_REQUESTÁÁ config key that controls the
|
|
set-cookie behavior. If set to ÁÁTrueÁÁ a permanent session will be
|
|
refreshed each request and get their lifetime extended, if set to
|
|
ÁÁFalseÁÁ it will only be modified if the session actually modifies.
|
|
Non permanent sessions are not affected by this and will always
|
|
expire if the browser window closes.
|
|
- Made Flask support custom JSON mimetypes for incoming data.
|
|
- Added support for returning tuples in the form ÁÁ(response,
|
|
headers)ÁÁ from a view function.
|
|
- Added :meth:Áflask.Config.from_jsonÁ.
|
|
- Added :attr:Áflask.Flask.config_classÁ.
|
|
- Added :meth:Áflask.Config.get_namespaceÁ.
|
|
- Templates are no longer automatically reloaded outside of debug
|
|
mode. This can be configured with the new ÁÁTEMPLATES_AUTO_RELOADÁÁ
|
|
config key.
|
|
- Added a workaround for a limitation in Python 3.3©s namespace
|
|
loader.
|
|
- Added support for explicit root paths when using Python 3.3©s
|
|
namespace packages.
|
|
- Added :command:ÁflaskÁ and the ÁÁflask.cliÁÁ module to start the
|
|
local 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ÁÁ.
|
|
- Error handlers that match specific classes are now checked first,
|
|
thereby allowing catching exceptions that are subclasses of HTTP
|
|
exceptions (in ÁÁwerkzeug.exceptionsÁÁ). This makes it possible 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.
|
|
- Added :meth:Áflask.Config.from_mappingÁ.
|
|
- 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.
|
|
- Removed deprecated module functionality.
|
|
- 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.
|
|
- Enforce blueprint handling in the order they were registered for
|
|
template loading.
|
|
- Ported test suite to py.test.
|
|
- Deprecated ÁÁrequest.jsonÁÁ in favour of ÁÁrequest.get_json()ÁÁ.
|
|
- 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.
|
|
- 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. This came up
|
|
originally as a part of
|
|
https://github.com/postmanlabs/httpbin/issues/168. :pr:Á1262Á
|
|
- The automatically provided ÁÁOPTIONSÁÁ method is now correctly
|
|
disabled if the user registered an overriding rule with the
|
|
lowercase-version ÁÁoptionsÁÁ. :issue:Á1288Á
|
|
- ÁÁflask.json.jsonifyÁÁ now supports the ÁÁdatetime.dateÁÁ type.
|
|
:pr:Á1326Á
|
|
- Don©t leak exception info of already caught exceptions to context
|
|
teardown handlers. :pr:Á1393Á
|
|
- Allow custom Jinja environment subclasses. :pr:Á1422Á
|
|
- Updated extension dev guidelines.
|
|
- ÁÁflask.gÁÁ now has ÁÁpop()ÁÁ and ÁÁsetdefaultÁÁ methods.
|
|
- Turn on autoescape for ÁÁflask.templating.render_template_stringÁÁ
|
|
by default. :pr:Á1515Á
|
|
- ÁÁflask.extÁÁ is now deprecated. :pr:Á1484Á
|
|
- ÁÁsend_from_directoryÁÁ now raises BadRequest if the filename is
|
|
invalid on the server OS. :pr:Á1763Á
|
|
- Added the ÁÁJSONIFY_MIMETYPEÁÁ configuration variable. :pr:Á1728Á
|
|
- Exceptions during teardown handling will no longer leave bad
|
|
application contexts lingering around.
|
|
- Fixed broken ÁÁtest_appcontext_signals()ÁÁ test case.
|
|
- 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.
|
|
- Fixed an issue causing exceptions raised before entering a request
|
|
or app context to be passed to teardown handlers.
|
|
- Fixed an issue with query parameters getting removed from requests
|
|
in the test client when absolute URLs were requested.
|
|
- Made ÁÁ@before_first_requestÁÁ into a decorator as intended.
|
|
- Fixed an etags bug when sending a file streams with a name.
|
|
- Fixed ÁÁsend_from_directoryÁÁ not expanding to the application root
|
|
path correctly.
|
|
- Changed logic of before first request handlers to flip the flag
|
|
after invoking. This will allow some uses that are potentially
|
|
dangerous but should probably be permitted.
|
|
- Fixed Python 3 bug when a handler from
|
|
ÁÁapp.url_build_error_handlersÁÁ reraises the ÁÁBuildErrorÁÁ.
|
|
|
|
|
|
Version 0.10.1
|
|
--------------
|
|
|
|
Released 2013-06-14
|
|
|
|
- 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.
|
|
- Added support for byte strings back to the session system. This
|
|
broke compatibility with the common case of people putting binary
|
|
data for token verification into the session.
|
|
- Fixed an issue where registering the same method twice for the same
|
|
endpoint would trigger an exception incorrectly.
|
|
|
|
|
|
Version 0.10
|
|
------------
|
|
|
|
Released 2013-06-13, codename Limoncello
|
|
|
|
- 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.
|
|
- Added ÁÁtemplate_testÁÁ methods in addition to the already existing
|
|
ÁÁtemplate_filterÁÁ method family.
|
|
- Added ÁÁtemplate_globalÁÁ methods in addition to the already
|
|
existing ÁÁtemplate_filterÁÁ method family.
|
|
- Set the content-length header for x-sendfile.
|
|
- ÁÁtojsonÁÁ filter now does not escape script blocks in HTML5
|
|
parsers.
|
|
- ÁÁtojsonÁÁ used in templates is now safe by default due. This was
|
|
allowed due to the different escaping behavior.
|
|
- Flask will now raise an error if you attempt to register a new
|
|
function on an already used endpoint.
|
|
- Added wrapper module around simplejson and added default
|
|
serialization of datetime objects. This allows much easier
|
|
customization of how JSON is handled by Flask or any Flask
|
|
extension.
|
|
- 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.
|
|
- 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.
|
|
- 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.
|
|
- ÁÁflask.gÁÁ is now stored on the app context instead of the request
|
|
context.
|
|
- ÁÁ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.
|
|
- ÁÁ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.
|
|
- ÁÁ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.
|
|
- Flask will no longer invoke the wrong error handlers if a proxy
|
|
exception is passed through.
|
|
- Added a workaround for chrome©s cookies in localhost not working as
|
|
intended with domain names.
|
|
- Changed logic for picking defaults for cookie values from sessions
|
|
to work better with Google Chrome.
|
|
- Added ÁÁmessage_flashedÁÁ signal that simplifies flashing testing.
|
|
- Added support for copying of request contexts for better working
|
|
with greenlets.
|
|
- Removed custom JSON HTTP exception subclasses. If you were relying
|
|
on them you can reintroduce them again yourself trivially. Using
|
|
them however is strongly discouraged as the interface was flawed.
|
|
- Python requirements changed: requiring Python 2.6 or 2.7 now to
|
|
prepare for Python 3.3 port.
|
|
- Changed how the teardown system is informed about exceptions. This
|
|
is now more reliable in case something handles an exception halfway
|
|
through the error handling process.
|
|
- Request context preservation in debug mode now keeps the exception
|
|
information around which means that teardown handlers are able to
|
|
distinguish error from success cases.
|
|
- Added the ÁÁJSONIFY_PRETTYPRINT_REGULARÁÁ configuration variable.
|
|
- Flask now orders JSON keys by default to not trash HTTP caches due
|
|
to different hash seeds between different workers.
|
|
- Added ÁÁappcontext_pushedÁÁ and ÁÁappcontext_poppedÁÁ signals.
|
|
- The builtin run method now takes the ÁÁSERVER_NAMEÁÁ into account
|
|
when picking the default port to run on.
|
|
- Added ÁÁflask.request.get_json()ÁÁ as a replacement for the old
|
|
ÁÁflask.request.jsonÁÁ property.
|
|
|
|
|
|
Version 0.9
|
|
-----------
|
|
|
|
Released 2012-07-01, codename Campari
|
|
|
|
- The :func:Áflask.Request.on_json_loading_failedÁ now returns a JSON
|
|
formatted response by default.
|
|
- The :func:Áflask.url_forÁ function now can generate anchors to the
|
|
generated links.
|
|
- The :func:Á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 :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Á.
|
|
- The :func:Áflask.get_flashed_messagesÁ function now allows rendering
|
|
flashed message categories in separate blocks, through a
|
|
ÁÁcategory_filterÁÁ argument.
|
|
- The :meth:Á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 :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.
|
|
- 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.
|
|
- 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.
|
|
- :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.
|
|
- 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 :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.
|
|
- Added ÁÁrequired_methodsÁÁ attribute to view functions to force-add
|
|
methods on registration.
|
|
- Added :func:Áflask.after_this_requestÁ.
|
|
- Added :func:Áflask.stream_with_contextÁ and the ability to push
|
|
contexts multiple times without producing unexpected behavior.
|
|
|
|
|
|
Version 0.8.1
|
|
-------------
|
|
|
|
Released 2012-07-01
|
|
|
|
- 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.8
|
|
-----------
|
|
|
|
Released 2011-09-29, codename Rakija
|
|
|
|
- Refactored session support into a session interface so that the
|
|
implementation of the sessions can be changed without having to
|
|
override the Flask class.
|
|
- Empty session cookies are now deleted properly automatically.
|
|
- View functions can now opt out of getting the automatic OPTIONS
|
|
implementation.
|
|
- HTTP exceptions and Bad Request errors can now be trapped so that
|
|
they show up normally in the traceback.
|
|
- Flask in debug mode is now detecting some common problems and tries
|
|
to warn you about them.
|
|
- Flask in debug mode will now complain with an assertion error if a
|
|
view was attached after the first request was handled. This gives
|
|
earlier feedback when users forget to import view code ahead of
|
|
time.
|
|
- Added the ability to register callbacks that are only triggered once
|
|
at the beginning of the first request.
|
|
(:meth:Á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 conceptually only instance depending and outside
|
|
version control so it©s the perfect place to put configuration files
|
|
etc. For more information see :ref:Áinstance-foldersÁ.
|
|
- Added the ÁÁAPPLICATION_ROOTÁÁ configuration variable.
|
|
- Implemented :meth:Á~flask.testing.TestClient.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 :attr:Á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 :mod:Á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.
|
|
- Fixed the Jinja2 environment©s ÁÁlist_templatesÁÁ method not
|
|
returning the correct names when blueprints or modules were
|
|
involved.
|
|
|
|
|
|
Version 0.7.2
|
|
-------------
|
|
|
|
Released 2011-07-06
|
|
|
|
- Fixed an issue with URL processors not properly working on
|
|
blueprints.
|
|
|
|
|
|
Version 0.7.1
|
|
-------------
|
|
|
|
Released 2011-06-29
|
|
|
|
- Added missing future import that broke 2.5 compatibility.
|
|
- Fixed an infinite redirect issue with blueprints.
|
|
|
|
|
|
Version 0.7
|
|
-----------
|
|
|
|
Released 2011-06-28, codename Grappa
|
|
|
|
- Added :meth:Á~flask.Flask.make_default_options_responseÁ which can
|
|
be used by subclasses to alter the default behavior for ÁÁOPTIONSÁÁ
|
|
responses.
|
|
- Unbound locals now raise a proper :exc:ÁRuntimeErrorÁ instead of an
|
|
:exc:ÁAttributeErrorÁ.
|
|
- 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.
|
|
- 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 1.0 the old
|
|
behavior will continue to work but issue dependency warnings.
|
|
- Fixed a problem for Flask to run on jython.
|
|
- Added a ÁÁPROPAGATE_EXCEPTIONSÁÁ configuration variable that can be
|
|
used to flip the setting of exception propagation which previously
|
|
was linked to ÁÁDEBUGÁÁ alone and is now linked to either ÁÁDEBUGÁÁ
|
|
or ÁÁTESTINGÁÁ.
|
|
- 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.
|
|
- Added an ÁÁendpointÁÁ method to the flask application object which
|
|
allows one to register a callback to an arbitrary endpoint with a
|
|
decorator.
|
|
- Use Last-Modified for static file sending instead of Date which was
|
|
incorrectly introduced in 0.6.
|
|
- Added ÁÁcreate_jinja_loaderÁÁ to override the loader creation
|
|
process.
|
|
- Implemented a silent flag for ÁÁconfig.from_pyfileÁÁ.
|
|
- Added ÁÁteardown_requestÁÁ decorator, for functions that should run
|
|
at the end 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Á
|
|
- Implemented :func:Áflask.has_request_contextÁ
|
|
- Deprecated ÁÁinit_jinja_globalsÁÁ. Override the
|
|
:meth:Á~flask.Flask.create_jinja_environmentÁ method instead to
|
|
achieve the same functionality.
|
|
- Added :func:Áflask.safe_joinÁ
|
|
- The automatic JSON request data unpacking now looks at the charset
|
|
mimetype parameter.
|
|
- Don©t modify the session on :func:Áflask.get_flashed_messagesÁ if
|
|
there are no messages in the session.
|
|
- ÁÁbefore_requestÁÁ handlers are now able to abort requests with
|
|
errors.
|
|
- It is not possible to define user exception handlers. That way you
|
|
can provide custom error messages from a central hub for certain
|
|
errors that might occur during request processing (for instance
|
|
database connection errors, timeouts from remote resources etc.).
|
|
- Blueprints can provide blueprint specific error handlers.
|
|
- Implemented generic :ref:ÁviewsÁ (class-based views).
|
|
|
|
|
|
Version 0.6.1
|
|
-------------
|
|
|
|
Released 2010-12-31
|
|
|
|
- Fixed an issue where the default ÁÁOPTIONSÁÁ response was not
|
|
exposing all valid methods in the ÁÁAllowÁÁ header.
|
|
- Jinja2 template loading syntax now allows "./" in front of a
|
|
template load path. Previously this caused issues with module
|
|
setups.
|
|
- Fixed an issue where the subdomain setting for modules was ignored
|
|
for the static folder.
|
|
- Fixed a security problem that allowed clients to download arbitrary
|
|
files if the host server was a windows based operating system and
|
|
the client uses backslashes to escape the directory the files where
|
|
exposed from.
|
|
|
|
|
|
Version 0.6
|
|
-----------
|
|
|
|
Released 2010-07-27, codename Whisky
|
|
|
|
- After request functions are now called in reverse order of
|
|
registration.
|
|
- OPTIONS is now automatically implemented by Flask unless the
|
|
application explicitly adds ©OPTIONS© as method to the URL rule. In
|
|
this case no automatic OPTIONS handling kicks in.
|
|
- Static rules are now even in place if there is no static folder for
|
|
the module. This was implemented to aid GAE which will remove the
|
|
static folder if it©s part of a mapping in the .yml file.
|
|
- 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.
|
|
- Added the ability to limit the incoming request data with the new
|
|
ÁÁMAX_CONTENT_LENGTHÁÁ configuration value.
|
|
- 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.
|
|
- Added a :func:Áflask.make_responseÁ function that simplifies
|
|
creating response object instances in views.
|
|
- 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.
|
|
- Refactored the way URL adapters are created. This process is now
|
|
fully customizable with the :meth:Á~flask.Flask.create_url_adapterÁ
|
|
method.
|
|
- 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.
|
|
|
|
.. _blinker: https://pypi.org/project/blinker/
|
|
|
|
|
|
Version 0.5.2
|
|
-------------
|
|
|
|
Released 2010-07-15
|
|
|
|
- Fixed another issue with loading templates from directories when
|
|
modules were used.
|
|
|
|
|
|
Version 0.5.1
|
|
-------------
|
|
|
|
Released 2010-07-06
|
|
|
|
- Fixes an issue with template loading from directories when modules
|
|
where used.
|
|
|
|
|
|
Version 0.5
|
|
-----------
|
|
|
|
Released 2010-07-06, codename Calvados
|
|
|
|
- Fixed a bug with subdomains that was caused by the inability to
|
|
specify the server name. The server name can now be set with the
|
|
ÁÁSERVER_NAMEÁÁ config key. This key is now also used to set the
|
|
session cookie cross-subdomain wide.
|
|
- Autoescaping is no longer active for all templates. Instead it is
|
|
only active for ÁÁ.htmlÁÁ, ÁÁ.htmÁÁ, ÁÁ.xmlÁÁ and ÁÁ.xhtmlÁÁ. Inside
|
|
templates this behavior can be changed with the ÁÁautoescapeÁÁ tag.
|
|
- Refactored Flask internally. It now consists of more than a single
|
|
file.
|
|
- :func:Áflask.send_fileÁ now emits etags and has the ability to do
|
|
conditional responses builtin.
|
|
- (temporarily) dropped support for zipped applications. This was a
|
|
rarely used feature and led to some confusing behavior.
|
|
- Added support for per-package template and static-file directories.
|
|
- Removed support for ÁÁcreate_jinja_loaderÁÁ which is no longer used
|
|
in 0.5 due to the improved module support.
|
|
- Added a helper function to expose files from any directory.
|
|
|
|
|
|
Version 0.4
|
|
-----------
|
|
|
|
Released 2010-06-18, codename Rakia
|
|
|
|
- Added the ability to register application wide error handlers from
|
|
modules.
|
|
- :meth:Á~flask.Flask.after_requestÁ handlers are now also invoked if
|
|
the request dies with an exception and an error handling page kicks
|
|
in.
|
|
- Test client has not the ability to preserve the request context for
|
|
a little longer. This can also be used to trigger custom requests
|
|
that do not pop the request stack for testing.
|
|
- Because the Python standard library caches loggers, the name of the
|
|
logger is configurable now to better support unittests.
|
|
- Added ÁÁTESTINGÁÁ switch that can activate unittesting helpers.
|
|
- The logger switches to ÁÁDEBUGÁÁ mode now if debug is enabled.
|
|
|
|
|
|
Version 0.3.1
|
|
-------------
|
|
|
|
Released 2010-05-28
|
|
|
|
- Fixed a error reporting bug with :meth:Áflask.Config.from_envvarÁ
|
|
- Removed some unused code from flask
|
|
- Release does no longer include development leftover files (.git
|
|
folder for themes, built documentation in zip and pdf file and some
|
|
.pyc files)
|
|
|
|
|
|
Version 0.3
|
|
-----------
|
|
|
|
Released 2010-05-28, codename Schnaps
|
|
|
|
- Added support for categories for flashed messages.
|
|
- 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.
|
|
- Added support for context binding that does not require the use of
|
|
the with statement for playing in the console.
|
|
- The request context is now available within the with statement
|
|
making it possible to further push the request context or pop it.
|
|
- Added support for configurations.
|
|
|
|
|
|
Version 0.2
|
|
-----------
|
|
|
|
Released 2010-05-12, codename J?germeister
|
|
|
|
- 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.
|
|
- Refactored internal request dispatching.
|
|
- Server listens on 127.0.0.1 by default now to fix issues with
|
|
chrome.
|
|
- Added external URL support.
|
|
- Added support for :func:Á~flask.send_fileÁ
|
|
- Module support and internal request handling refactoring to better
|
|
support pluggable applications.
|
|
- Sessions can be set to be permanent now on a per-session basis.
|
|
- Better error reporting on missing secret keys.
|
|
- Added support for Google Appengine.
|
|
|
|
|
|
Version 0.1
|
|
-----------
|
|
|
|
Released 2010-04-16
|
|
|
|
- First public preview release.
|