ANN: CherryPy-2.0-final released
remi at cherrypy.org
Wed May 4 17:13:50 CEST 2005
I am happy to announce the first stable release of CherryPy-2.
CherryPy-2 is a pythonic, object-oriented web development framework.
CherryPy-2 is a redesign of CherryPy-1 (the unpythonic features have
been removed): no more compilation step, pure python source code (no
Here is a sample Hello, World in CherryPy-2:
# from cherrypy import cpg
# class HelloWorld:
# def index(self):
# return "Hello world!"
# cpg.root = HelloWorld()
- this code starts a multi-threaded HTTP server that dispatches
requests to methods
- requests like "http://domain/dir/page?arg1=val1&arg2=val2" are
mapped to "dir.page(arg1='val1', arg2='val2')"
- CherryPy also supports "positional" arguments in URLs like
- requests are mapped to an object tree that is "mounted" on cpg.root
(for instance: "cpg.root.user", "cpg.root.user.remi", ...)
- method must be explicitely exposed with a decorator "@cpg.expose"
(or "index.exposed = True" for Python-2.3)
- methods can return a generator instead of a string (useful when
generating big pages)
Here is a non-exhaustive list of CherryPy-2 features:
multi-threaded HTTP server, XML-RPC server, sessions, form handling,
authentication, unicode support, gzip-compression, virtual hosting,
The design of CherryPy-2 allows to easily write/use pluggable "filters"
- filters perform operations on the request/response such as
gzip-compression or string encoding
- modules are web applications (like a blog or a web forum) than can
be easily "mounted" anywhere you want in your website
CherryPy-2 is already used in production by many sites and is
supported by an active community.
More information about the Python-announce-list