Skip to content

Instantly share code, notes, and snippets.

@jbpotonnier
Created February 16, 2012 19:53
Show Gist options
  • Star 4 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save jbpotonnier/1847371 to your computer and use it in GitHub Desktop.
Save jbpotonnier/1847371 to your computer and use it in GitHub Desktop.
[Flask] Routing with class
bin
include
lib
local
*.swp
*.pyc
from klask import Klask
app = Klask(__name__)
class Handler:
@app.route("/hello/<name>")
def hello(self, name):
return "Hello {name}!".format(name=name)
if __name__ == "__main__":
app.run(debug=True)
from flask import Flask
from functools import partial, update_wrapper
def compose(g, f):
return lambda *args, **kwargs: g(f(*args, **kwargs))
class Klask(Flask):
def __init__(self, *args, **kwargs):
Flask.__init__(self, *args, **kwargs)
def route(self, rule, **options):
apply_self = lambda f: update_wrapper(partial(f, self=None), f)
decorator = Flask.route(self, rule, **options)
return compose(decorator, apply_self)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment