Dive into the world of the Flask microframework to develop an array of web applications
About This Book
- Structure, compose, and build powerful Flask HTML-based applications and JSON/XML-based APIs using advanced application design patterns
- Integrate third-party Flask extensions for tasks such as social authentication, sending emails, and interacting with databases and cache layers
- Build a series of Flask applications of increasing complexity
Who This Book Is For
If you are a Python web developer who has developed basic Flask applications and now wants to build a series of more complex web applications, then this is the book for you.
What You Will Learn
- Use the virtualenv Python package to effectively isolate your development environments
- Convert a simple one-file Flask application into a more full-fledged multi-package application
- Integrate Flask-Login for simple user authentication, Flask-WTF for forms, and Flask-SQLAlchemy for database interactions
- Explore URL routing and dispatching in a blueprint structured application
- Create your own signals and consume them within your application
- Learn to leverage Werkzeug, the WSGI library that powers much of Flask
- Implement custom exceptions for handling non-20x response codes
- Write your own CLI tools for administrative and development tasks of your Flask application using Flask-Script/Click
- Build your Flask extensions to encapsulate reusable behaviors across your applications
Flask is a small but powerful web development framework for Python. Though Flask is termed a micro-framework, it is no way lacking in functionality; there are many extensions available to Flask which helps it to function at the same level as other large frameworks such as Django and Ruby on Rails.
This book will demonstrate how to develop a series of web application projects with the Python web micro-framework, and leverage extensions and external Python libraries and APIs to extend the development of a variety of larger and more complex web applications.
The book will start by explaining Python's Virtualenv library and how to create and switch between multiple virtual environments. You'll first build an SQL database-backed application, which will use Flask-WTF, Flask-SQLAlchemy, Jinja templates, and other methods. Next you'll move on to a timeline application, built using concepts including pytest-Flask, the Blinker package, data modelling for user timelines, exception handling, and creating and organizing CLI tools.
Moving on, you'll discover how to implement a photo timeline application where you'll explore topics such as writing and running celery tasks, API error handling and testing, and Werkzeug middlewares.
Finally, the book walks you through creating an application which fetches data from GitHub and stores it locally. You will also learn how to install and configure Flask-Click extension.
Style and approach
This book covers how to effectively use the Flask micro-framework to develop a series of web applications. Each chapter focusses on the development of an application increasing in complexity with easy steps to follow.
Table of Contents
Chapter 1: Starting on the Right Foot – Using Virtualenv
Chapter 2: Small to Big – Growing the Flask Application Structure
Chapter 3: Snap – the Code Snippet Sharing Application
Chapter 4: Socializer – the Testable Timeline
Chapter 5: Shutterbug, the Photo Stream API
Chapter 6: Hublot – Flask CLI Tools
Chapter 7: Dinnerly – Recipe Sharing