Flask.
Mainly because I do a lot of different things with web frameworks. Sometimes I'm serving a straightforward web page, sometimes I'm querying a database and rendering a template, other times I'm wiring up a json API, and other times I might be doing some weird data analysis before sending results to a dashboard template. Some of my URLs require three lines of code, some require three hundred.
In Flask, an endpoint is just a Python function, and most importantly, the URL endpoint is right next to the function declaration, so you don't have to keep track of two or three things in two or three different files. (Though the template is a separate file, of course.) To do something new just add an endpoint and a function; and most IDEs let you collapse/hide the function's code when you don't want to look at it, so it's as "clean" as it is flexible, if not elegant.
In Flask, an endpoint is just a Python function, and most importantly, the URL endpoint is right next to the function declaration, so you don't have to keep track of two or three things in two or three different files. (Though the template is a separate file, of course.) To do something new just add an endpoint and a function; and most IDEs let you collapse/hide the function's code when you don't want to look at it, so it's as "clean" as it is flexible, if not elegant.