CherryPy2 Tutorials
------------------------------------------------------------------------

This is a series of tutorials explaining how to develop dynamic web
applications using CherryPy2. A couple of notes:

  - As of the time of writing, these tutorials depend on the
    cp2-hendrik development branch of CherryPy2. You can get
    a copy of the code off the following Subversion URL:

    http://svn.mans.de/cherrypy/cp2/branches/cp2-hendrik/

    They will most likely not work with the CherryPy2 trunk code!

  - Each of these tutorials builds on the ones before it. If you're
    new to CherryPy2, we recommend you start with tutorial01.py and
    work your way upwards. :)

  - In most of these tutorials, you will notice that all output is done
    by returning normal Python strings, often using simple Python
    variable substitution. In most real-world applications, you will
    probably want to use a separate template package. CherryPy2 comes
    with its own templating system, CherryTemplate, but you can also
    use Cheetah, or any other package you like. CP2 doesn't care. :)

  - Lots of additional information regarding this exciting new version
    of CherryPy can be found in the cherrypy-devel archives located at:

    http://sourceforge.net/mailarchive/forum.php?forum_id=13146


Available tutorials:

  - tutorial01.py: Basic "Hello world" application
  - tutorial02.py: Linking to other methods
  - tutorial03.py: Passing GET/POST variables to methods
  - tutorial04.py: Creating a site structure using multiple
                   (nested) request handler objects
  - tutorial05.py: Object inheritance (using a base page class)
  - tutorial06.py: Aspects!
  - tutorial07.py: Simulating a virtual path structure using
                   the default method
  - tutorial08.py: Sessions

  - bonus-generators.py:
    How to use the yield statement for building return strings.
                         
  - bonus-sqlobject.py:
    How to use SQLObject from within CP2.


Upcoming tutorials, sorted by estimated complexity:

  - Cookies
  - File uploads
  - Authentication (via aspects)
  - Overriding special methods (_cpInitRequest etc.)
  - Serving static content
  - ...?


Upcoming bonus tutorials:

  - CherryTemplate
  - Cheetah
  - ZODB
  - ...?
