Skip to content

Instantly share code, notes, and snippets.

@dudymas
Forked from faruken/lol.py
Last active September 23, 2015 18:59
Show Gist options
  • Save dudymas/58b165ae41d222ea2c4c to your computer and use it in GitHub Desktop.
Save dudymas/58b165ae41d222ea2c4c to your computer and use it in GitHub Desktop.
Flask running behind Twisted
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os
from twisted.application import service
from twisted.web import server, static
from twisted.web.resource import Resource
from twisted.web.wsgi import WSGIResource
from twisted.internet import reactor
from flask.views import MethodView
from flask import Flask, render_template
SECRET_KEY = 'whhhaat'
app = Flask(__name__)
app.config.from_object(__name__)
class IndexHandler(MethodView):
def get(self):
return render_template('index.html')
app.add_url_rule('/', view_func=IndexHandler.as_view('index'))
class Root(Resource):
wsgi = WSGIResource(reactor, reactor.getThreadPool(), app)
def getChild(self, path, request):
request.prepath.pop()
request.postpath.insert(0, path)
return self.wsgi
def render(self, request):
return self.wsgi.render(request)
application = service.Application(SECRET_KEY) # Really? REEEEAAALLY?
root = Root()
static_dir = os.path.join(os.path.abspath(__file__), 'static')
resource = static.File(static_dir)
root.putChild('static', resource)
site = server.Site(root)
twistd -n web --wsgi lol.app
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment