CherryPy is a pythonic, object-oriented HTTP framework.
Switch branches/tags
Clone or download
Failed to load latest commit information.
.circleci Upgrade storing test results in Circle CI Sep 17, 2018
.github Update GitHub issue template Apr 22, 2018
.test-results/pytest Preserve test runs folder in Git tree Sep 16, 2018
cherrypy Fix pre-commit complaint Sep 10, 2018
docs Add more terms highlighting and refs Sep 9, 2018
man Remove the deperecated backward compatibility for legacy config keys … Jul 24, 2016
tests Remove future imports Sep 4, 2018
visuals Lossless Compression of images saves 25KB Nov 4, 2017
.appveyor.yml Upload AppVeyor test results regardless of status Sep 5, 2018
.codecov.yml Integrate pytest-cov and Aug 11, 2017
.gitattributes Set union merge strategy for changelog Jun 18, 2018
.gitignore Preserve test runs folder in Git tree Sep 16, 2018
.mention-bot Integrate Facebook's mention bot Oct 15, 2017
.pre-commit-config-pep257.yaml Use pydocstyle in pep257 pre-commit fallback Jun 16, 2018
.pre-commit-config.yaml Swap pep257 with pydocstyle Jun 16, 2018
.readthedocs.yml Make RTD build docs under 3.6 Jan 13, 2018
.travis.yml Bump Python 3.6 to the latest patch v under OS X Sep 15, 2018
CHANGES.rst Update changelog Sep 8, 2018 Increment license year and drop bold style Apr 17, 2018
README.rst Add badges to README Sep 2, 2018 Don't try collecting tests in docs May 11, 2018
pytest.ini Need to ignore .eggs also; why didn't this fail on my machine? May 11, 2018
setup.cfg Use 'dists' for the distributions for release, syncing with jaraco/sk… Aug 14, 2018 Don't depend on memcached extra of pytest-services Sep 9, 2018
tox.ini Preserve test runs folder in Git tree Sep 16, 2018

README.rst stable codecov

Welcome to the GitHub repository of CherryPy!

CherryPy is a pythonic, object-oriented HTTP framework.

  1. It allows building web applications in much the same way one would build any other object-oriented program.
  2. This design results in less and more readable code being developed faster. It's all just properties and methods.
  3. It is now more than ten years old and has proven fast and very stable.
  4. It is being used in production by many sites, from the simplest to the most demanding.
  5. And perhaps most importantly, it is fun to work with :-)

Here's how easy it is to write "Hello World" in CherryPy:

import cherrypy

class HelloWorld(object):
    def index(self):
        return "Hello World!"


And it continues to work that intuitively when systems grow, allowing for the Python object model to be dynamically presented as a web site and/or API.

While CherryPy is one of the easiest and most intuitive frameworks out there, the prerequisite for understanding the CherryPy documentation is that you have a general understanding of Python and web development. Additionally:

If the docs are insufficient to address your needs, the CherryPy community has several avenues for support.


Please follow the contribution guidelines. And by all means, absorb the Zen of CherryPy.