Book Image

Flask Framework Cookbook - Third Edition

By : Shalabh Aggarwal
4.3 (4)
Book Image

Flask Framework Cookbook - Third Edition

4.3 (4)
By: Shalabh Aggarwal

Overview of this book

Discover what makes Flask, the lightweight Python web framework, popular, as you delve into its modular design that enables the development of scalable web apps. With this practical guide, you'll explore modern solutions, recommended design patterns, and best practices for Flask web development. Updated to the latest version of Flask and Python, this third edition of the Flask Framework Cookbook moves away from the outdated libraries, updates content to incorporate new coding patterns, and introduces recipes for the latest tools. You'll explore different ways to integrate with GPT to build AI-ready Flask applications. The book starts with an exploration of Flask application configurations and then guides you through working with templates and understanding the ORM and view layers. You’ll also be able to write an admin interface and get to grips with testing using the factory pattern, debugging, and logging errors. Then you’ll discover different ways of using Flask to create, deploy, and manage microservices using AWS, GCP, and Kubernetes. Finally, you’ll gain insights into various deployment and post-deployment techniques for platforms such as Apache, Tornado, and Datadog. By the end of this book, you'll have acquired the knowledge necessary to write Flask applications that cater to a wide range of use cases in the best possible way and scale them using standard industry practices.
Table of Contents (20 chapters)
1
Part 1: Flask Fundamentals
6
Part 2: Flask Deep Dive
12
Part 3: Advanced Flask

Creating custom fields and validations

Apart from providing a bunch of fields and validations, Flask and WTForms also provide you with the flexibility to create custom fields and validations. Sometimes, we might need to parse some form of data that cannot be processed using the available current fields. In such cases, we can implement our own fields.

How to do it...

In our catalog application, we used SelectField for the category, and we populated the values for this field in our create_product() method on a GET request by querying the Category model. It would be much more convenient if we did not concern ourselves with this and the population of this field took care of itself.

Now, let’s implement a custom field to do this in models.py:

class CategoryField(SelectField):
    def iter_choices(self):
        categories = [(c.id, c.name) for c in
          Category...