Also you don;'t really need to learn Jinja etc. separately. Flask does enough to get you started. For example, I can easily build routing using app.route() decorator in flask which in the back is using Werkjeug. I honestly don't know much about werkjeug itself (yet) but that did not stop me from building a fully functional web app. Of course, if you really want to get in the details, you learn the individual libraries that gives you flexibility to build a real work production app. YMMV