Free Sample
+ Collection

Flask Framework Cookbook

Shalabh Aggarwal

Over 80 hands-on recipes to help you create small-to-large web applications using Flask
RRP $26.99
RRP $43.99
Print + eBook

Want this title & more?

$12.99 p/month

Subscribe to PacktLib

Enjoy full and instant access to over 2000 books and videos – you’ll find everything you need to stay ahead of the curve and make sure you can always get the job done.

Book Details

ISBN 139781783983407
Paperback258 pages

About This Book

  • Get the most out of the powerful Flask framework while remaining flexible with your design choices
  • Build end-to-end web applications, right from their installation to the post-deployment stages
  • Packed with recipes containing lots of sample applications to help you understand the intricacies of the code

Who This Book Is For

If you are a web developer who wants to learn more about developing applications in Flask and scale them with industry-standard practices, this is the book for you. This book will also act as a handy tool if you are aware of Flask's major extensions and want to make the best use of them.

It is assumed that you have knowledge of Python and a basic understanding of Flask. If you are completely new to Flask, reading the book from the first chapter and going forward will help in getting acquainted with Flask as you go ahead.

Table of Contents

Chapter 1: Flask Configurations
Environment setup with virtualenv
Handling basic configurations
Class-based settings
Organization of static files
Being deployment specific with instance folders
Composition of views and models
Creating a modular web app with blueprints
Making a Flask app installable using setuptools
Chapter 2: Templating with Jinja2
Bootstrap layout
Block composition and layout inheritance
Creating a custom context processor
Creating a custom Jinja2 filter
Creating a custom macro for forms
Advanced date and time formatting
Chapter 3: Data Modeling in Flask
Creating a SQLAlchemy DB instance
Creating a basic product model
Creating a relational category model
Database migration using Alembic and Flask-Migrate
Model data indexing with Redis
Opting the NoSQL way with MongoDB
Chapter 4: Working with Views
Writing function-based views and URL routes
Class-based views
URL routing and product-based pagination
Rendering to templates
Dealing with XHR requests
Decorator to handle requests beautifully
Creating custom 404 and 500 handlers
Flashing messages for better user feedback
SQL-based searching
Chapter 5: Webforms with WTForms
SQLAlchemy model data as form representation
Validating fields on the server side
Creating a common forms set
Creating custom fields and validation
Creating a custom widget
Uploading files via forms
Cross-site Request Forgery protection
Chapter 6: Authenticating in Flask
Simple session-based authentication
Authenticating using the Flask-Login extension
Using OpenID for authentication
Using Facebook for authentication
Using Google for authentication
Using Twitter for authentication
Chapter 7: RESTful API Building
Creating a class-based REST interface
Creating an extension-based REST interface
Creating a SQLAlchemy-independent REST API
A complete REST API example
Chapter 8: Admin Interface for Flask Apps
Creating a simple CRUD interface
Using the Flask-Admin extension
Registering models with Flask-Admin
Creating custom forms and actions
WYSIWYG for textarea integration
Creating user roles
Chapter 9: Internationalization and Localization
Adding a new language
Lazy evaluation and the gettext/ngettext functions
Global language-switching action
Chapter 10: Debugging, Error Handling, and Testing
Setting up basic file logging
Sending e-mails on the occurrence of errors
Using Sentry to monitor exceptions
Debugging with pdb
Creating our first simple test
Writing more tests for views and logic
Nose library integration
Using mocking to avoid real API access
Determining test coverage
Using profiling to find bottlenecks
Chapter 11: Deployment and Post Deployment
Deploying with Apache
Deploying with uWSGI and Nginx
Deploying with Gunicorn and Supervisor
Deploying with Tornado
Using Fabric for deployment
S3 storage for file uploads
Deploying with Heroku
Deploying with AWS Elastic Beanstalk
Application monitoring with Pingdom
Application performance management and monitoring with New Relic
Chapter 12: Other Tips and Tricks
Full-text search with Whoosh
Full-text search with Elasticsearch
Working with signals
Using caching with your application
E-mail support for Flask applications
Understanding asynchronous operations
Working with Celery

What You Will Learn

  • Configure Flask in the best way to suit your application needs
  • Integrate Flask with technologies such as Redis, Sentry, and MongoDB
  • Integrate your applications with most of the login mechanisms available
  • Write beautiful RESTful applications
  • Create an admin interface for your application
  • Learn about efficient and effective debugging, logging, and error handling in Flask
  • Test your applications as you write them to prevent future complications
  • Implement full-text search for effective user query handling

In Detail

Flask Framework Cookbook takes you through a number of recipes that will help you understand the power of Flask and its extensions. You will start by seeing the different ways of configurations that a Flask application can make use of. You will learn how to work with templates and learn about the ORM and view layers. You will see how to write an admin interface followed by the debugging and logging of errors. Finally, you will learn about different deployment and post-deployment techniques on platforms such as Apache, Tornado, and Heroku.

By the end of this book, you will have gained all the knowledge required to write Flask applications in the best possible way, and scale them with best practices.


Read More