from milla.dispatch import routing from webob import acceptparse import jinja2 import milla import os import random import yaml OFFERS = [ 'application/xhtml+xml', 'text/html', ] try: YamlLoader = yaml.CLoader except AttributeError: YamlLoader = yaml.Loader env = jinja2.Environment( loader=jinja2.FileSystemLoader(os.path.dirname(__file__)), ) with open(os.path.join(os.path.dirname(__file__), 'songquotes.yml')) as f: songquotes = yaml.load(f, Loader=YamlLoader) def home(request): response = request.ResponseClass() accept = acceptparse.MIMEAccept( request.accept.header_value.replace('*/*', '') ) response.content_type = accept.best_match(OFFERS, response.default_content_type) tmpl = env.get_template('index.html') response.text = tmpl.render(quote=random.choice(songquotes)) return response router = routing.Router() router.add_route('/', home) application = milla.Application(router) if __name__ == '__main__': from wsgiref import simple_server httpd = simple_server.make_server('', 8080, application) try: httpd.serve_forever() except KeyboardInterrupt: print('') httpd.shutdown() httpd.server_close()