Flask is a lightweight Python web framework for building web apps and APIs. Its core handles routing, requests and templates, and leaves the other choices to you.
It is called a microframework because its core stays small but extensible. Apps built with it do not have to be small. Flask has no database layer, form library or user system. You add those through extensions such as Flask-SQLAlchemy and Flask-Login, or with any library you prefer.
Flask is built on two libraries:
Werkzeug handles the low-level request and response work, the routing and the development server.
Jinja renders the templates.
The trade-off is that you choose and wire up the database layer, forms and user system yourself.
Rewriting in plainer words…
This answer doesn't lend itself to a diagram - it reads best . No credits were charged.