""" Tutorial - Object inheritance You are free to derive your request handler classes from any base class you wish. In most real-world applications, you will probably want to create a central base class used for all your pages, which takes care of things like printing a common page header and footer. """ import os.path import cherrypy class Page: # Store the page title in a class attribute title = 'Untitled Page' def header(self): return '''
Isn't this exciting? There's another page, too!
''' + self.footer() class AnotherPage(Page): title = 'Another Page' @cherrypy.expose def index(self): return self.header() + '''And this is the amazing second page!
''' + self.footer() tutconf = os.path.join(os.path.dirname(__file__), 'tutorial.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(HomePage(), config=tutconf)