CherryPy official documentation
This website contains the official documentation for the most recent, stable version of CherryPy. Compatibility info for older versions is included at the bottom of each page. For versions 2.1 and 2.2 of CherryPy, you can find more reference material in the OldDocs.
See Publications for links to books and online articles.
Translations
- Spanish (Incomplete translation)
Table of Contents
Installation
- How to install
- Downloading released versions
- Using Subversion to download development versions
- The CherryPy license
Introduction
Getting Started
- Introductory Tutorial (start here) English French Italian Spanish
- Downloading files
- Uploading files
- Sessions
- Static content: how to serve CSS, .js, PNG, and other files
- Favicon
- Caching
- Choosing a templating language
- Cookies
Application Reference
The Request Cycle
- Handling Requests: Mapping URI's to your functions
- The Request object
- The Response object
- Exception handling (including redirects)
- CherryPy's built-in request tools
- Basic authentication (CherryPy 3.2+)
- Basic Authentication (CherryPy 3.1-)
- Digest authentication (CherryPy 3.2+)
- Digest Authentication (CherryPy 3.1-)
- Session authorization
- Caching
- Cache expiration
- Etags
- Decoding querystring and POST body parameters
- Unicode response encoding
- Flattening generators
- Gzipping response content
- Redirecting errors
- Logging request headers on error
- Logging tracebacks on error
- NSGMLS validation
- HTMLTidy validation
- Running CherryPy behind a proxy (e.g. mod_proxy)
- Controlling redirects from config
- Handling the 'Accept' request header
- Validating the 'Referer' request header
- Setting common response headers
- Ignoring request headers
- Handling trailing slashes in URI's
- XMLRPC
- Writing your own request tools
Everything Else
- Site and server management
- The HTTP server
- The Application object
- Configuring CherryPy
- Logging access, errors, and other info
- Writing tests
Deployment
- Using Apache via mod_python
- Combined development and deployment versions
- Serving multiple applications
- Using custom HTTP servers and gateways
- Hosting providers
Specifications and API's
- The CherryPy specification
- WSGI
- The Web Site Process Bus specification
- rfc2617
- Notes on the gzip implementation
- APIDocs
Known Issues
- Frequently Asked Questions (FAQ)
- Broken pipe errors
- Profiling warnings on Debian systems
- Notes on the use of Windows COM objects
The CherryPy Project
- Getting involved in the CherryPy project
- Coding conventions
- Package layout strategy
- Release process checklist
- The CherryPy Team
- Archived news items
- The Zen of CherryPy
Upgrades
- UpgradeTo20
- UpgradeTo21 WhatsNewIn21
- UpgradeTo22 WhatsNewIn22
- UpgradeTo30 WhatsNewIn30
- UpgradeTo31 WhatsNewIn31
- UpgradeTo32 WhatsNewIn32



