The readable, beginner-friendly pick for APIs and small web apps.
Flask is a small Python web framework: a few lines get a server running, and it adds almost nothing you didn't ask for. Combined with Python's famously readable syntax, it's the gentlest way to learn how a backend actually works.
You'll see Flask when you're building an API or backend service or a shop or e-commerce backend, you're not on shared hosting, and either your top priority is easy to learn or you have little or some coding experience. More experienced developers optimising for jobs, speed or scale get Node.js instead.
A complete Flask app can be five lines, and every one of them is visible - there's no hidden configuration or generated folder structure to decode. Routes are plain functions with a decorator; requests and responses are objects you can print and inspect. When something breaks, the built-in debugger shows you exactly where.
Python itself is the other half of the argument. Fewer symbols, consistent indentation, and error messages that have improved a lot in recent versions mean you spend your time learning backend concepts - routing, HTTP methods, status codes, databases, authentication - rather than fighting the language.
GET /api/books, POST /api/books, DELETE /api/books/<id>, storing books in SQLite with Python's built-in sqlite3 module.curl or a REST client before writing any frontend.400 for bad input, 404 for missing records, 201 for created.flask run is for your laptop. Use a production server such as gunicorn.SECRET_KEY committed to Git. Read it from an environment variable.app.py. As the app grows, move routes into blueprints and use an application factory.Flask scales further than people expect, but two neighbours are worth knowing: FastAPI for typed, async APIs with automatic documentation, and Django when you want authentication, an admin panel and an ORM out of the box. Both feel familiar after Flask.