ANN: CherryPy-2.1.0-final released

R

remi

Hello everyone,

I am happy to announce the release of CherryPy-2.1.0

If is the result of 6 months of intense development since the
last stable release and the work of a growing number of
contributors.

CherryPy has become increasingly popular these past few months
(the mailing lists now have more than 500 people) and it is
also used in other popular products such as Subway and Turbogears.

This release is a major step forward for CherryPy. It is packed
with new features and bug fixes.

Here are the main improvements in this release:
- New WSGI interface, which allow CherryPy sites to be deployed on
any WSGI server. People are already running it on mod_python, FastCGI,
SCGI, IIS or CherryPy's own built-in HTTP server.
- New implementation for sessions, which supports multiple backends
- Built-in list of convenient "filters" for things like gzip
compression,
XHTML validation, caching, unicode decoding/encoding, authentication,
XML-RPC wrapper, etc ... These filters can easily be enabled/disabled
through configuration.
- New "development" mode which provides things like autoreload (no
need to manually restart your server when you make a change), logging
of page stats, etc ...
- Better handling of file uploads
- Internal implementation now uses generators everywhere (no more
StringIO)
- New built-in HTTP server implementation

***************
About CherryPy:

CherryPy-2 is a pythonic, object-oriented web development framework.

Here is a sample Hello, World in CherryPy-2:

# import cherrypy
# class HelloWorld:
# @cherrypy.expose
# def index(self):
# yield "<html><body>"
# yield "Hello world!"
# yield "</body></html>"
# cherrypy.root = HelloWorld()
# cherrypy.server.start()

Main properties:
- this code starts a multi-threaded HTTP server that dispatches
requests to methods
- requests like "http://domain/dir/page?arg1=va l1&arg2=val2" are
mapped to "dir.page(arg1='val1', arg2='val2')"
- CherryPy also supports "RESTful" URLs like
http://domain/book/science/9
- requests are mapped to an object tree that is "mounted" on
cherrypy.root
(for instance: "cherrypy.root.user", "cherrypy.root.user.remi", ...)
- method must be explicitly exposed with a decorator "@cherrypy.expose"
(or "index.exposed = True" for Python-2.3)

Remi.

http://www.cherrypy.org
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,767
Messages
2,569,572
Members
45,045
Latest member
DRCM

Latest Threads

Top