Download Install Tutorial Docs FAQ Tools WikiLicense Team IRC Planet Involvement Shop Book

N e w s

2007-09-05 CP3 on Jython

H. Eriksson has a "Hello, World!" of CherryPy 3 working on the Jython trunk! Hacks were needed for the _AttributeDocstrings metaclass, a dummy signal module for Jython, and a couple extra attributes to the socket module, but overall it seems doable. If anyone would like to provide patches to CP so it works on Jython out of the box, feel free!

2007-09-02 New Genshi tutorial

Chris Lenz has created a new tutorial on how to use Genshi, and chose CherryPy to help explain it. Nice work!

2007-08-07 CherryPy 3.0.2

CherryPy 3.0.2 has been released. This is a bugfix release. All users are encouraged to upgrade. See changes here. Upgrade via easy_install -U CherryPy or by downloading a compressed archive of the release and manually installing. Thanks to our community and team for the tickets and code contributions.

2007-03-31 CherryPy Essentials now available

Packt Publishing has published the CherryPy Essentials book March 31st, 2007. You can find out more at http://www.cherrypyessentials.com/ where you will discover more about its content, find out where to get the book from as well as retrieve its source code.

2007-02-21 CherryPy book available on pre-order

Packt Publishing now provides the CherryPy book in pre-order from their website and soon from Amazon and other websites.

2007-01-31 CherryPy book cover

Packt Publishing which will release the upcoming CherryPy book soon offers now the possibility for the people among the community to submit photographs for the front cover of the book. If you feel like you could have your say to the contest we invite you to send your work to them.

2006-12-23 CherryPy-3.0.0 released!!

Just in time for Christmas, a present from Jolly Old Saint fumanchu and crew. CherryPy 3.0.0 is the product of much hard work and many contributions from the Python community. Be sure to check out WhatsNewIn30 and learn how to UpgradeTo30.

Welcome to cherrypy.org

CherryPy is a pythonic, object-oriented HTTP framework.

CherryPy allows developers to build web applications in much the same way they would build any other object-oriented Python program. This usually results in smaller source code developed in less time.

CherryPy is now more than three years old and it is has proven very fast and stable. It is being used in production by many sites, from the simplest ones to the most demanding ones.

Oh, and most importantly: CherryPy is fun to work with :-) Here's how easy it is to write "Hello World" in CherryPy 3:

import cherrypy

class HelloWorld(object):
    def index(self):
        return "Hello World!"
    index.exposed = True

cherrypy.quickstart(HelloWorld())

Examples: Hello World & What is your name?

Quick Facts

  • Your CherryPy powered web applications are in fact stand-alone Python applications embedding their own multi-threaded web server. You can deploy them anywhere you can run Python applications. Apache is not required, but it's possible to run a CherryPy application behind it (or IIS). CherryPy applications run on Windows, Linux, Mac OS X and any other platform supporting Python.
  • You write request handler classes that you tie together in a tree of objects, starting with a root object. CherryPy maps incoming request URIs to this object tree. The URI '/' represents the 'root' object, '/users/' the 'root.users' object, and so on. Requests are handled by methods inside these request handler classes. GET/POST parameters are passed as standard method parameters; '/users/display?id=123' will call root.users.display(id = '123'). The methods' return strings are then passed back to the browser. You have complete control over which methods are exposed through the web and which ones aren't.
  • Beyond this functionality, CherryPy pretty much stays out of your way. You are free to use any kind of templating, data access etc. technology you want. CherryPy can also handle sessions, static files, cookies, file uploads and everything you would expect from a decent web framework.

Features

  • A fast, HTTP/1.1-compliant, WSGI thread-pooled webserver
  • Support for any other WSGI-enabled webserver or adapter, including Apache, IIS, mod_python, FastCGI, SCGI, and mod_wsgi
  • Easy to run multiple HTTP servers at once
  • A powerful configuration system for developers and deployers alike
  • A flexible plugin system
  • Built-in tools for caching, encoding, sessions, authorization, static content, and many more
  • A native mod_python adapter
  • A complete test suite
  • Swappable and customizable...everything.
  • Built-in profiling, coverage, and testing support.

How To Use This Site

This site contains the official documentation for CherryPy. You can find more information about CherryPy using the TableOfContents, the TitleIndex, or the Search page.

Versions

BranchStatusWhat's New Upgrading Browse Source
3.1 beta WhatsNewIn31UpgradeTo31 source:trunk
3.0 3.0.2 WhatsNewIn30UpgradeTo30 source:branches/cherrypy-3.0.x
2.2 2.2.1 WhatsNewIn22UpgradeTo22 source:branches/cherrypy-2.x
2.1 2.1.1 WhatsNewIn21 source:branches/cherrypy-2.1
2.0 2.0.0 UpgradeTo20 source:tags/cherrypy-2.0.0

Hosted by WebFaction

Log in as guest/cpguest to create tickets