Book Image

Mastering Flask Web Development - Second Edition

By : Daniel Gaspar, Jack Stouffer
Book Image

Mastering Flask Web Development - Second Edition

By: Daniel Gaspar, Jack Stouffer

Overview of this book

Flask is a popular Python framework known for its lightweight and modular design. Mastering Flask Web Development will take you on a complete tour of the Flask environment and teach you how to build a production-ready application. You'll begin by learning about the installation of Flask and basic concepts such as MVC and accessing a database using an ORM. You will learn how to structure your application so that it can scale to any size with the help of Flask Blueprints. You'll then learn how to use Jinja2 templates with a high level of expertise. You will also learn how to develop with SQL or NoSQL databases, and how to develop REST APIs and JWT authentication. Next, you'll move on to build role-based access security and authentication using LDAP, OAuth, OpenID, and database. Also learn how to create asynchronous tasks that can scale to any load using Celery and RabbitMQ or Redis. You will also be introduced to a wide range of Flask extensions to leverage technologies such as cache, localization, and debugging. You will learn how to build your own Flask extensions, how to write tests, and how to get test coverage reports. Finally, you will learn how to deploy your application on Heroku and AWS using various technologies, such as Docker, CloudFormation, and Elastic Beanstalk, and will also learn how to develop Jenkins pipelines to build, test, and deploy applications.
Table of Contents (15 chapters)

What this book covers

Chapter 1, Getting Started, helps readers set up a Flask environment for development using the best practices for Python projects. You are given a very basic skeleton Flask app that is built throughout the book.

Chapter 2, Creating Models with SQLAlchemy, shows how to use the Python database library SQLAlchemy in conjunction with Flask to create an object-oriented API for your database.

Chapter 3, Creating Views with Templates, shows how to use Flask's templating system, Jinja, to dynamically create HTML by leveraging your SQLAlchemy models.

Chapter 4, Creating Controllers with Blueprints, covers how to use Flask's blueprints feature in order to organize your view code while also avoiding repeating yourself.

Chapter 5, Advanced Application Structure, uses the knowledge gained in the last four chapters, explains how to reorganize the code files in order to create a more maintainable and testable application structure.

Chapter 6, Securing Your App, explains how to use various Flask extensions in order to add a login system with permissions-based access to each view.

Chapter 7, Using NoSQL with Flask, shows what a NoSQL database is and how to integrate one into your application when it allows more powerful features.

Chapter 8, Building RESTful APIs, shows how to provide the data stored in the application's database to third parties in a secure and easy-to-use manner.

Chapter 9, Creating Asynchronous Tasks with Celery, explains how to move expensive or time-consuming programs to the background so the application does not slow down.

Chapter 10, Useful Flask Extensions, explains how to leverage popular Flask extensions in order to make your app faster, add more features, and make debugging easier.

Chapter 11, Building Your Own Extension, teaches you how Flask extensions work and how to create your own.

Chapter 12, Testing Flask Apps, explains how to add unit tests and user interface tests to your app for quality assurance and reducing the amount of buggy code.

Chapter 13, Deploying Flask Apps, explains how to take your completed app from development to being hosted on a live server.