==============================
Migration from Pylons to Flask
==============================
On CKAN 2.6, work started to migrate from the Pylons web framework to a more
modern alternative, `Flask `_. This will be a gradual
process spanning multiple CKAN versions, where both the Pylons app and the
Flask app will live side by side with their own controllers or blueprints
which handle the incoming requests. The idea is that any other lower level code,
like templates, logic actions and authorization are shared between them as much
as possible. You can learn more about the approach followed and the work
already done on this page in the CKAN wiki:
https://github.com/ckan/ckan/wiki/Migration-from-Pylons-to-Flask
This page lists changes and deprecations that both core and extensions
developers should be aware of going forward, as well as common exceptions and
how to fix them.
-----------------------------------------------------------------------
Always import methods and objects from the plugins toolkit if available
-----------------------------------------------------------------------
This is a :ref:`good practice in general