Skip to content

Instantly share code, notes, and snippets.

@whiteclover
Created August 20, 2014 05:56
Show Gist options
  • Save whiteclover/e512ca76e3972cf43821 to your computer and use it in GitHub Desktop.
Save whiteclover/e512ca76e3972cf43821 to your computer and use it in GitHub Desktop.
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()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment