Skip to content

Instantly share code, notes, and snippets.

@faruken
Created July 25, 2012 05:54
Show Gist options
  • Star 10 You must be signed in to star a gist
  • Fork 3 You must be signed in to fork a gist
  • Save faruken/3174638 to your computer and use it in GitHub Desktop.
Save faruken/3174638 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('whhhaat')
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