The open source Python framework Flask is a quiet yet popular choice in the dev community. It comes with all the standard features you’d expect in a framework; in fact it’s actually quite small, and many features are extended through 3rd party plugins.
Getting started with Flask can be a challenge. Python is a great language and Flask is a fantastic framework. But it takes more than clean syntax to really learn how this operates in the world of web development.
The book Flask Web Development solves this challenge by offering beginners a straightforward path to learn this framework from scratch. You can start with zero knowledge of Flask and reach a high level of competency in a reasonable timeframe.
Note this isn’t an easy book, and it does require knowledge of Python to work through it comfortably. But if you’re up for a challenge you will gain confidence over Flask with this book if you put in the effort.
The content breaks down into the overarching sections which then cover more detailed topics in the internal chapters.
I’ll cover each section in quick detail. The first section covers all the basics of Flask. Here are the chapters for section 1:
In the very first section you install, configure, and study the fundamental components of Flask. This is likely the most useful section because the author explains popular add-ons and extensions used in the Flask dev workflow.
You’ll learn how to work directly with a database, how to run unit tests, routes, templates, and many other fundamentals of Flask development.
This is the section I had the easiest time following and felt was the most useful.
The 2nd section teaches how to build a custom social blogging app from scratch with Flask. It contains the following chapters:
Let me say this is challenging. You really learn a lot by following this blueprint and the author guides you through every step of the process.
The application you build is actually very modern. You learn the basics of authentication and pulling content from a database. It even gets into RESTful API development which surprised me quite a bit.
If you need an exhaustive project to help you study Flask then this should be your guide. It will not be easy, but it will try to hold your hand throughout the entire process. However you will need to do real work to understand the application in a real-world scenario.
This lengthy tutorial offers a few suggestions for debugging. However it can’t answer all your questions. Be prepared to Google various problems or even post to Stack Overflow as you work through the lessons.
The 3rd and last section of the book covers deployment and some basic security measures. The chapters are lengthy but fewer in number. Chapter topics include Testing, Performance, Deployment, and Additional Resources followed by an appendix.
By the end I felt like I was reading through a lengthy book of solutions rather than an intro guide. The author covers so much detail about absolutely every facet of Flask and other extensions. I think this book could even be useful to developers who have experience with Flask and want to learn more about how it works in production.
Most lessons in the book do use Bootstrap for the frontend. This shouldn’t be a big deal unless you absolutely despise Bootstrap.
There’s also a heavy reliance on 3rd party apps like Heroku for deployment. The author does offer alternatives in most cases, but for some you’ll just need to follow through as best you can.
Unfortunately this means you need to be willing to learn more than just Flask if you follow this book. It will teach you a lot about Python and Flask development. But it also pushes you down a specific road for studying Flask with very specific technologies.
This is a divisive book for me because on the one hand it definitely teaches Flask in great detail. If you go into this with existing knowledge you will be able to work with flask and try building your own ideas.
Yet I also felt lost quite often and had to resort to Googling for solutions. Not all of these problems were even Flask related.
Also most of the database content in this book relies on SQLAlchemy. I haven’t personally used this very much, so I was definitely confused when it came to this toolkit. I don’t think other developers would have an easy time picking this up because it doesn’t seem to be explained very well.
I also think this gets into a deeper problem with the book: too much reliance on libraries. Flask itself is a framework/library so I really shouldn’t be complaining. Libraries help you get shit done faster.
But after going through the motions and building the application with the help of this book, I feel like I only understand one way to use Flask. I don’t fully understand why I’m using these tools or what other alternatives are out there. I still don’t fully understand why I used WTForms in the development.
I should say I’m far from a Python expert. But I do have experience and I have at least looked over the Flask documentation before.
After going through this book I’m thinking my general level of Python knowledge isn’t enough. You really are expected to have clear knowledge of Python and even maybe a teensy understanding of Flask before going into this book.
Chapter to chapter it reads more like one long tutorial with various solutions for solving different problems. Some solutions are built into Flask, others not so much.
Overall I do think there’s something to be learned from this book. I just think you need a good amount of prerequisite knowledge to get the most from this writing.
If you’re already competent with Python and want to move into Flask then I would absolutely recommend this book. Even if you’re not great with Python but are willing to learn as you go then this book will prove immensely valuable(and challenging).
Flask Web Development: Developing Web Applications with Python offers a lot if you put in the work. I think it can be rather confusing at times, and I also feel it’s much easier to read if you have a background in Python.
But I can’t help but recommend this book as a Flask resource only because the content is so comprehensive. It does have its downsides, mostly a reliance on 3rd party platforms. But these also save a lot of time rather than rolling your own solutions.
Overall I’d give this book a hearty 3.5/5 stars for being detailed enough to teach the core components, yet light enough to act as an introductory book to Flask web development.