# Werkzeug

# Documentation Overview

Welcome to the Werkzeug 0.5.1 documentation. You can find different editions of the documentation online.

## 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
- Werkzeug Tutorial
  - Part 0: The Folder Structure
  - Part 1: The WSGI Application
  - Part 2: The Utilities
  - Intermission: And Now For Something Completely Different
  - Part 3: Database Models
  - Part 4: The View Functions
  - Part 5: The Templates
  - Intermission: Adding The Design
  - Part 6: Listing Public URLs
  - The End Result
  - Bonus: Styling 404 Error Pages
  - Outro
- API Levels
  - Example
  - High or Low?
- Quickstart
  - WSGI Environment
  - Enter Request
  - Header Parsing
  - Responses

## Serving and Testing

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

- Serving WSGI Applications
  - Virtual Hosts
  - Troubleshooting
- Test Utilities
  - Diving In
  - Environment Building
  - Testing API
- Debugging Applications
  - Enabling the Debugger
  - Using the Debugger
  - Pasting Errors
- Management Script Utilities
  - Basic Usage
  - Using The Scripts
  - Writing Actions
  - Action Discovery
  - Reference
  - Example Scripts

## Reference

- Wrappers
  - How they Work
  - Base Wrappers
  - Mixin Classes
- URL Routing
  - Quickstart
  - Rule Format
  - Builtin Converters
  - Maps, Rules and Adapters
  - Rule Factories
  - Rule Templates
  - Custom Converters
- Context Locals
  - Objects
- Utilities
  - Middlewares
  - WSGI Helpers
  - URL Helpers
  - HTML Helpers
  - HTTP Helpers
  - General Helpers
- Data Structures
  - General Purpose
  - HTTP Related
  - Others
- Mini Templates
  - Syntax Elements
  - Missing Variables
  - The Template Class
- 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
  - 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
    - 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