Chapter 1: Flask Configurations
Environment setup with virtualenv
Handling basic configurations
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
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
URL routing and product-based pagination
Dealing with XHR requests
Decorator to handle requests beautifully
Creating custom 404 and 500 handlers
Flashing messages for better user feedback
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
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
Chapter 9: Internationalization and Localization
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
Creating our first simple test
Writing more tests for views and logic
Using mocking to avoid real API access
Determining test coverage
Using profiling to find bottlenecks
Chapter 11: Deployment and Post Deployment
Deploying with uWSGI and Nginx
Deploying with Gunicorn and Supervisor
Using Fabric for deployment
S3 storage for file uploads
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
Using caching with your application
E-mail support for Flask applications
Understanding asynchronous operations