主要是一个简单的cherrypy hello例子
import cherrypy from jinja2 import Environment, FileSystemLoader import os def create_server(): euterpectl = EuterpeRoot() route = cherrypy.dispatch.RoutesDispatcher() route.mapper.explicit = False route.connect('index', '/', controller=euterpectl, action='index') route.connect('say', '/say/:word', controller=euterpectl, action='say') return euterpectl, route class EuterpeRoot: def __init__(self): self.env = Environment(loader=FileSystemLoader('template')) def render(self, template_name, *args, **kwargs): template = self.env.get_template(template_name) return template.render(*args, **kwargs) def index(self): return self.render("index.html", salutation='Hello', target='World') def say(self, word): return "say %s" % (word) if __name__ == '__main__': server, route = create_server() static_dir = os.path.join(os.path.dirname(__file__), "static") conf = { # 'server.socket_port': 8088, 'engine.autoreload.on': True, 'log.screen': True, 'checker.on': True, # 'restart_enable': True, # add css, image and js static files '/style': {'tools.staticdir.on': True, 'tools.staticdir.dir': os.path.join(static_dir, 'style') }, '/js': {'tools.staticdir.on': True, 'tools.staticdir.dir': os.path.join(static_dir, 'js') }, '/img': {'tools.staticdir.on': True, 'tools.staticdir.dir': os.path.join(static_dir, 'img') }, } config = {'/': {'request.dispatch': route}, 'global': conf } cherrypy.config.update(config) cherrypy.tree.mount(server, '/', config=config) cherrypy.engine.start() cherrypy.engine.block()