Skip to content

Instantly share code, notes, and snippets.

@ianschenck
Last active July 30, 2023 03:00
Show Gist options
  • Star 22 You must be signed in to star a gist
  • Fork 4 You must be signed in to fork a gist
  • Save ianschenck/977379a91154fe264897 to your computer and use it in GitHub Desktop.
Save ianschenck/977379a91154fe264897 to your computer and use it in GitHub Desktop.
Run your flask app under twisted wsgi, ALWAYS.
if __name__ == "__main__":
reactor_args = {}
def run_twisted_wsgi():
from twisted.internet import reactor
from twisted.web.server import Site
from twisted.web.wsgi import WSGIResource
resource = WSGIResource(reactor, reactor.getThreadPool(), app)
site = Site(resource)
reactor.listenTCP(5000, site)
reactor.run(**reactor_args)
if app.debug:
# Disable twisted signal handlers in development only.
reactor_args['installSignalHandlers'] = 0
# Turn on auto reload.
import werkzeug.serving
run_twisted_wsgi = werkzeug.serving.run_with_reloader(run_twisted_wsgi)
run_twisted_wsgi()
if __name__ == "__main__":
app.run()
@yegorkryukov
Copy link

Thanks for the code. How to run this app with the debug flag?

@utix
Copy link

utix commented Aug 18, 2020

Thanks for the code. How to run this app with the debug flag?

Just activate it via env:

FLASK_DEBUG=1

@mohammedabdulai
Copy link

mohammedabdulai commented Apr 27, 2021

Thanks for the script. Can you explain what's going? Also how do you control a WSGI app running on Twisted Web?

@g1i1U
Copy link

g1i1U commented Mar 4, 2022

real Big Thanks from the heart

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment