Clone wiki

CherryPy / UpgradeTo20

Differences between CP1 and CP2 and how to upgrade


  • No compilation is needed like in cherrypy1
  • The entire webserver, and all userpages and logic are purely python
  • No more masks, views and functions. Everything is based on objects and methods now
  • No 'builtin' templating engine, use CherryPyFilters or CherryTemplate for templating.
  • More generic: you can insert objects and methods '''on the fly''' to change behaviour of your site
  • More control...

More Specific

  • + CherryPyFilters (and therefore better hooks support)
  • + Not every CP1 CherryClass is a global anymore!
  • - Builtin templating (it's separate now, use CherryTemplate or another templating [wiki:CherryPyFilters filter])
  • + As compilation is no longer needed, the server can be used with AutoReload and serveral other nice features to enable '''faster development'''
  • O Aspects are still available, though in a seperate library which you can inherit from


Mind the following when wanting to migrate:

  • CSAuthenticate (for session authentication) bytes generator based templating filters, like XyaptuFilter
  • You'll have to use templating for all your CP1 Views
  • Expose all functions you want to be available through the web
  • xml-rpc is available using XmlRpcFilter
  • Move all your globals elsewhere