diff options
Diffstat (limited to 'pysite/base_route.py')
-rw-r--r-- | pysite/base_route.py | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/pysite/base_route.py b/pysite/base_route.py index 4fdad857..916e7fae 100644 --- a/pysite/base_route.py +++ b/pysite/base_route.py @@ -1,23 +1,31 @@ # coding=utf-8 -from flask import Flask +from flask import Flask, render_template from flask.views import MethodView class BaseView(MethodView): - path = None #: str - name = None #: str + name = None # type: str + + def render(self, *template_names, **context): + context["current_page"] = self.name + context["view"] = self + + return render_template(template_names, **context) + + +class RouteView(BaseView): + path = None # type: str @classmethod - def setup(cls: "BaseView", app: Flask): + def setup(cls: "RouteView", app: Flask): if not cls.path or not cls.name: raise RuntimeError("Route views must have both `path` and `name` defined") app.add_url_rule(cls.path, view_func=cls.as_view(cls.name)) -class ErrorView(MethodView): - name = None #: str - error_code = None #: int +class ErrorView(BaseView): + error_code = None # type: int @classmethod def setup(cls: "ErrorView", app: Flask): |