Created
November 19, 2017 06:43
-
-
Save dastanko/23d49bed96004eb8b5c5e8dc99f0b9a5 to your computer and use it in GitHub Desktop.
sample wsgi app
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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