### Navigation

- index
- modules |
- Werkzeug 0.10.4 documentation »

# Werkzeug Documentation

## Getting Started

If you are new to Werkzeug or WSGI development in general you should start here.

- Installation
  - Installing a released version
  - Installing the development version
  - virtualenv
- Transition to Werkzeug 1.0
  - Automatically Rewriting Imports
  - Stop Using Deprecated Things
- Werkzeug Tutorial
  - Introducing Shortly
  - Step 0: A Basic WSGI Introduction
  - Step 1: Creating the Folders
  - Step 2: The Base Structure
  - Intermezzo: Running the Application
  - Step 3: The Environment
  - Step 4: The Routing
  - Step 5: The First View
  - Step 6: Redirect View
  - Step 7: Detail View
  - Step 8: Templates
  - Step 9: The Style
  - Bonus: Refinements
- API Levels
  - Example
  - High or Low?
- Quickstart
  - WSGI Environment
  - Enter Request
  - Header Parsing
  - Responses
- Python 3 Notes
  - WSGI Environment
  - URLs
  - Request Cleanup

## Serving and Testing

The development server and testing support and management script utilities are covered here:

- Serving WSGI Applications
  - Reloader
  - Virtual Hosts
  - Shutting Down The Server
  - Troubleshooting
  - SSL
- Test Utilities
  - Diving In
  - Environment Building
  - Testing API
- Debugging Applications
  - Enabling the Debugger
  - Using the Debugger
  - Pasting Errors

## Reference

- Request / Response Objects
  - How they Work
  - Mutability and Reusability of Wrappers
  - Base Wrappers
  - Mixin Classes
- URL Routing
  - Quickstart
  - Rule Format
  - Builtin Converters
  - Maps, Rules and Adapters
  - Rule Factories
  - Rule Templates
  - Custom Converters
  - Host Matching
- WSGI Helpers
  - Iterator / Stream Helpers
  - Environ Helpers
  - Convenience Helpers
- HTTP Utilities
  - Date Functions
  - Header Parsing
  - Header Utilities
  - Cookies
  - Conditional Response Helpers
  - Constants
  - Form Data Parsing
- Data Structures
  - General Purpose
  - HTTP Related
  - Others
- Utilities
  - HTML Helpers
  - General Helpers
  - URL Helpers
  - UserAgent Parsing
  - Security Helpers
- URL Helpers
- Context Locals
- Middlewares
- HTTP Exceptions
  - Usage Example
  - Error Classes
  - Baseclass
  - Special HTTP Exceptions
  - Simple Aborting
  - Custom Errors

## Deployment

This section covers running your application in production on a web server such as Apache or lighttpd.

- Application Deployment
  - CGI
    - Creating a .cgi file
    - Server Setup
  - mod_wsgi (Apache)
    - Installing mod_wsgi
    - Creating a .wsgi file
    - Configuring Apache
  - FastCGI
    - Creating a .fcgi file
    - Configuring lighttpd
    - Configuring nginx
    - Debugging
  - HTTP Proxying
    - Creating a .py server
    - Configuring nginx

## Contributed Modules

A lot of useful code contributed by the community is shipped with Werkzeug as part of the contrib module:

- Contributed Modules
  - Atom Syndication
  - Sessions
    - Application Integration
    - Reference
  - Secure Cookie
    - Application Integration
    - Security
    - Reference
  - Cache
    - How Caching Works
    - Creating a Cache Object
    - Cache System API
    - Cache Systems
  - Extra Wrappers
  - Iter IO
  - Fixers
  - WSGI Application Profiler
  - Lint Validation Middleware

## Additional Information

- Important Terms
  - WSGI
  - Response Object
  - View Function
- Unicode
  - Unicode in Python
  - Unicode in HTTP
  - Error Handling
  - Request and Response Objects
- Dealing with Request Data
  - Missing EOF Marker on Input Stream
  - When does Werkzeug Parse?
  - How does it Parse?
  - Limiting Request Data
  - How to extend Parsing?
- Werkzeug Changelog
  - Werkzeug Changelog
  - API Changes

If you can’t find the information you’re looking for, have a look at the index or try to find it using the search function:

- Index
- Search Page