diff options
author | Alexander Sulfrian <alex@spline.inf.fu-berlin.de> | 2013-09-04 15:19:30 +0000 |
---|---|---|
committer | pad <pad@vm-pad-b.spline.inf.fu-berlin.de> | 2013-09-04 15:19:30 +0000 |
commit | 7eb1c777059f88d7a8372deccfdfa8c622c3bff1 (patch) | |
tree | c566b54f72b8dc3adc555f57d084495b7ae88755 /utils.py | |
parent | 44fefb0a7f918f38affc09ce9065edec882b93ec (diff) | |
download | padlite-teams-7eb1c777059f88d7a8372deccfdfa8c622c3bff1.tar.gz padlite-teams-7eb1c777059f88d7a8372deccfdfa8c622c3bff1.tar.bz2 padlite-teams-7eb1c777059f88d7a8372deccfdfa8c622c3bff1.zip |
utils: add templated decorator from flask patterns
Diffstat (limited to 'utils.py')
-rw-r--r-- | utils.py | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/utils.py b/utils.py new file mode 100644 index 0000000..147f048 --- /dev/null +++ b/utils.py @@ -0,0 +1,20 @@ +from functools import wraps +from flask import request, render_template + +# using http://flask.pocoo.org/docs/patterns/viewdecorators/ +def templated(template=None): + def decorator(f): + @wraps(f) + def decorated_function(*args, **kwargs): + template_name = template + if template_name is None: + template_name = request.endpoint \ + .replace('.', '/') + '.html' + ctx = f(*args, **kwargs) + if ctx is None: + ctx = {} + elif not isinstance(ctx, dict): + return ctx + return render_template(template_name, **ctx) + return decorated_function + return decorator |