cherrypy入门

主要是一个简单的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()
原文地址:https://www.cnblogs.com/nagi/p/4191447.html