Skip to content

CherryPy is a pythonic, object-oriented HTTP framework.

License

Notifications You must be signed in to change notification settings

pavlenk0/cherrypy

 
 

Repository files navigation

CherryPy

CherryPy Build Status Codacy Badge

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 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):
    @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.

Table of contents

Help

What are my options if I feel I need help?

I don't understand the documentation

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.

I have a question

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.

I have found a bug

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.

I have a feature request

Good stuff! Please create an issue!
Note: Features are more likely to be added the more users they seem to benefit.

I want to discuss CherryPy, reach out to developers or CherryPy users

The gitter page is good for when you want to talk, but doesn't feel that the discussion has to be indexed for posterity.

Documentation

Installation

To install CherryPy for use in your project, follow these instructions:

From the PyPI package

pip install cherrypy

or (for python 3)

pip3 install cherrypy

From source

Change to the directory where setup.py is located and type (Python 2.6 or later needed):

python setup.py install

Development

Contributing

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

Testing

  • 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'

About

CherryPy is a pythonic, object-oriented HTTP framework.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 100.0%