""" Tutorial - Hello World The most basic (working) CherryPy application possible. """ # Import CherryPy global namespace import cherrypy class HelloWorld: """ Sample request handler class. """ def index(self): # CherryPy will call this method for the root URI ("/") and send # its return value to the client. Because this is tutorial # lesson number 01, we'll just send something really simple. # How about... return "Hello world!" # Expose the index method through the web. CherryPy will never # publish methods that don't have the exposed attribute set to True. index.exposed = True class stats: """ Sample request handler class. """ def index(self): # CherryPy will call this method for the root URI ("/") and send # its return value to the client. Because this is tutorial # lesson number 01, we'll just send something really simple. # How about... return "stats!" # Expose the index method through the web. CherryPy will never # publish methods that don't have the exposed attribute set to True. index.exposed = True import os.path conf = os.path.join(os.path.dirname(__file__), 'cherrypy.conf') if __name__ == '__main__': # CherryPy always starts with app.root when trying to map request URIs # to objects, so we need to mount a request handler root. A request # to '/' will be mapped to HelloWorld().index(). #cherrypy.quickstart(HelloWorld(), config=tutconf) cherrypy.root = HelloWorld() cherrypy.root.stats = stats() cherrypy.config.update({ 'global': {'server.log_to_screen': True, 'server.environment': 'production', 'server.socket_port': 8000, 'server.socket_host': '192.168.1.2', }, '/' : { 'static_filter.dir.root': '/path/to/www', }, '/stats' : { 'static_filter.dir.dir': 'stats', }, }) cherrypy.server.start() else: # This branch is for the test suite; you can ignore it. cherrypy.tree.mount(HelloWorld(), config=conf)