To begin with, a framework is a set of software tools that are used to be able to work on creating applications, websites, etc..
Also called a work environment or framework, its objective is to make life easier for programmers. They are usually multilingual, although there are some specific ones for specific languages.
We will focus on Frameworks for Python and detail some of the characteristics of the best ones currently available.
Django
It's free and open source, written entirely in Python, and makes building complex websites extremely easy. It is one of the most powerful, it has a great community behind it, lots of documentation and free and paid support options.
Among some of its features we have: Object-relational mapper, applications that can be installed on any page managed with Django, database API, generic view system that saves us from having to write certain common tasks, template system with labels and inheritance between templates, etc.
Recommended for programmers who want to develop something with powerful tools and quickly.
Flask
It is a small and light Framework based on Python, it is open source and allows us to make dynamic web pages. Has a good documentation, GitHub code and mailing list.
Some of its features are: It includes a development web server, has a debugger and integrated support for testing, is compatible with Python 3 and wsgi, supports the use of secure cookies, sessions can be used, etc.
CherryPy
It is a minimalist Framework for Python, open source and more than 10 years old.
Among its characteristics we can highlight: a WSGI web server, built-in tools for caching, encoding, sessions, authentication, static content, customizable, plugin system, etc.
bottle
Fast, simple and lightweight Micro Framework for Python. The best feature of this framework is that it is not complex, easy to learn, and has good documentation. It provides minimal tools to the developer, routing, templates and a mini abstraction over WSGI. It can run on Python 3. We would only recommend it for creating a web API or developing something simple.
And you, what framework do you use? Which is your favorite? We in our Master in Advanced Programming in Python for Big Data, Hacking and Machine Learning, We work with Django and we think it is one of the most powerful and complete currently.