Welcome to Flask¶
![Flask: web development, one drop at a time](_images/flask-logo.png)
Welcome to Flask’s documentation. This documentation is divided into different parts. I recommend that you get started with Installation and then head over to the Quickstart. Besides the quickstart, there is also a more detailed Tutorial that shows how to create a complete (albeit small) application with Flask. If you’d rather dive into the internals of Flask, check out the API documentation. Common patterns are described in the Patterns for Flask section.
Flask depends on two external libraries: the Jinja2 template engine and the Werkzeug WSGI toolkit. These libraries are not documented here. If you want to dive into their documentation, check out the following links:
User’s Guide¶
This part of the documentation, which is mostly prose, begins with some background information about Flask, then focuses on step-by-step instructions for web development with Flask.
- Foreword
- Foreword for Experienced Programmers
- Installation
- Quickstart
- Tutorial
- Introducing Flaskr
- Step 0: Creating The Folders
- Step 1: Database Schema
- Step 2: Application Setup Code
- Step 3: Installing flaskr as a Package
- Step 4: Database Connections
- Step 5: Creating The Database
- Step 6: The View Functions
- Step 7: The Templates
- Step 8: Adding Style
- Bonus: Testing the Application
- Templates
- Testing Flask Applications
- Application Errors
- Debugging Application Errors
- Configuration Handling
- Signals
- Pluggable Views
- The Application Context
- The Request Context
- Modular Applications with Blueprints
- Flask Extensions
- Command Line Interface
- Development Server
- Working with the Shell
- Patterns for Flask
- Larger Applications
- Application Factories
- Application Dispatching
- Implementing API Exceptions
- Using URL Processors
- Deploying with Setuptools
- Deploying with Fabric
- Using SQLite 3 with Flask
- SQLAlchemy in Flask
- Uploading Files
- Caching
- View Decorators
- Form Validation with WTForms
- Template Inheritance
- Message Flashing
- AJAX with jQuery
- Custom Error Pages
- Lazily Loading Views
- MongoKit in Flask
- Adding a favicon
- Streaming Contents
- Deferred Request Callbacks
- Adding HTTP Method Overrides
- Request Content Checksums
- Celery Based Background Tasks
- Subclassing Flask
- Deployment Options
- Becoming Big
API Reference¶
If you are looking for information on a specific function, class or method, this part of the documentation is for you.
- API
- Application Object
- Blueprint Objects
- Incoming Request Data
- Response Objects
- Sessions
- Session Interface
- Test Client
- Application Globals
- Useful Functions and Classes
- Message Flashing
- JSON Support
- Template Rendering
- Configuration
- Extensions
- Stream Helpers
- Useful Internals
- Signals
- Class-Based Views
- URL Route Registrations
- View Function Options
- Command Line Interface
Additional Notes¶
Design notes, legal information and changelog are here for the interested.
- Design Decisions in Flask
- HTML/XHTML FAQ
- Security Considerations
- Unicode in Flask
- Flask Extension Development
- Pocoo Styleguide
- Python 3 Support
- Upgrading to Newer Releases
- Flask Changelog
- Version 0.12.5
- Version 0.12.4
- Version 0.12.3
- Version 0.12.2
- Version 0.12.1
- Version 0.12
- Version 0.11.2
- Version 0.11.1
- Version 0.11
- Version 0.10.2
- Version 0.10.1
- Version 0.10
- Version 0.9
- Version 0.8.1
- Version 0.8
- Version 0.7.3
- Version 0.7.2
- Version 0.7.1
- Version 0.7
- Version 0.6.1
- Version 0.6
- Version 0.5.2
- Version 0.5.1
- Version 0.5
- Version 0.4
- Version 0.3.1
- Version 0.3
- Version 0.2
- Version 0.1
- License