Preface
The setting is familiar enough: you're a web developer who has worked with a few programming languages, frameworks and environments, and decided to learn enough Python to make a few toy web applications. Maybe you've already used some Python web frameworks to build an application or two, and want to explore a few of the alternative options that you keep hearing about.
This is usually how people come to know about Flask.
As a microframework, Flask is built to help you and then get out of your way. Taking a very different approach from most other general-purpose web frameworks, Flask consists of a very small core that handles the processing and normalization of HTTP and the WSGI specification (via Werkzeug) and provides an exceptionally good templating language (via Jinja2). The beauty of Flask lies in its intrinsic extensibility: as it was designed from the start to do very little, it was also designed to be extended very easily. A pleasant consequence of this is that you are not beholden to a particular database abstraction layer, authentication protocol, or caching mechanism.
Learning a new framework is not simply about learning the basic functions and objects that are provided to you: it's often as important to learn how the framework can be adapted to help you build the specific requirements of your application.
This book will demonstrate how to develop a series of web application projects with the Python web microframework, and leverage extensions and external Python libraries/APIs to extend the development of a variety of larger and more complex web applications.