Skip to content

Instantly share code, notes, and snippets.

@dastanko
Created November 19, 2017 06:43
Show Gist options
  • Save dastanko/23d49bed96004eb8b5c5e8dc99f0b9a5 to your computer and use it in GitHub Desktop.
Save dastanko/23d49bed96004eb8b5c5e8dc99f0b9a5 to your computer and use it in GitHub Desktop.
sample wsgi app
from werkzeug.routing import Map, Rule
from werkzeug.serving import run_simple
from werkzeug.wrappers import Request, Response
class WebApplication(object):
def __init__(self, router=None) -> None:
self.router = router
def dispatch_request(self, request):
adapter = self.router.bind_to_environ(request.environ)
presenter, values = adapter.match()
return presenter(request, values)
def wsgi_app(self, environ, start_response):
request = Request(environ)
response = self.dispatch_request(request)
return response(environ, start_response)
def __call__(self, environ, start_response):
return self.wsgi_app(environ, start_response)
class HomePresenter(object):
def __call__(self, request, values):
return Response('Welcome to Home Presenter')
if __name__ == '__main__':
router = Map([
Rule('/', endpoint=HomePresenter()),
])
app = WebApplication(router)
run_simple('127.0.0.1', 5000, app, use_debugger=True, use_reloader=True)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment