Welcome to the GitHub-repository of CherryPy!
CherryPy is a pythonic, object-oriented HTTP framework.
- It allows building web applications in much the same way one would build any other object-oriented program.
- This results in less and more readable code being developed faster. It's all just properties and methods.
- It is now more than ten years old and has proven fast and very stable.
- It is being used in production by many sites, from the simplest to the most demanding.
- 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):
@cherrypy.expose
def index(self):
return "Hello World!"
cherrypy.quickstart(HelloWorld())
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.
What are my options if I feel I need help?
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.
So if you have that, and still cannot understand the documentation, it is probably not your fault. Please create an issue in those cases.
If you have a question and cannot find an answer for it in issues or the the documentation, please create an issue.
Questions and their answers have great value for the community, and a tip is to really put the effort in and write a good explanation, you will get better and quicker answers. Examples are strongly encouraged.
If no one have already, create an issue. Be sure to provide ample information, remember that any help won't be better than your explanation.
Unless something is very obviously wrong, you are likely to be asked to provide a working example, displaying the erroneous behaviour.
Note: While this might feel troublesome, a tip is to always make a separate example that have the same dependencies as your project. It is great for troubleshooting those annoying problems where you don't know if the problem is at your end or the components. Also, you can then easily fork and provide as an example.
You will get answers and resolutions way quicker. Also, many other open source projects require it.
Good stuff! Please create an issue!
Note: Features are more likely to be added the more users they seem to benefit.
The gitter page is good for when you want to talk, but doesn't feel that the discussion has to be indexed for posterity.
- The official user documentation of CherryPy is at: http://docs.cherrypy.org/en/latest/
- Tutorials are included in the repository: https://github.com/cherrypy/cherrypy/tree/master/cherrypy/tutorial
- A general wiki at(will be moved to github): https://bitbucket.org/cherrypy/cherrypy/wiki/Home
- Plugins are described at: http://tools.cherrypy.org/
To install CherryPy for use in your project, follow these instructions:
pip install cherrypy
or (for python 3)
pip3 install cherrypy
Change to the directory where setup.py is located and type (Python 2.6 or later needed):
python setup.py install
Please follow the contribution guidelines. And by all means, absorb the Zen of CherryPy.
- To run the regression tests, just install cherrypy in
--editable
mode:
pip install -e .
and run
python setup.py test
- To run individual tests type:
python setup.py test -a '-s cherrypy.test.test_foo'