aboutsummaryrefslogtreecommitdiffstats
path: root/pysite/base_route.py
diff options
context:
space:
mode:
authorGravatar Gareth Coles <[email protected]>2018-02-08 16:01:20 +0000
committerGravatar Gareth Coles <[email protected]>2018-02-08 16:01:20 +0000
commit428eb9a6afb85fca51e87f6d16a1044a5fa24bf8 (patch)
treeee991943fd2bb05a574d8ae035fb6fc5be3f8c52 /pysite/base_route.py
parentPffft (diff)
parentTravis deploy on master (#5) (diff)
Merge remote-tracking branch 'origin/master'
Diffstat (limited to 'pysite/base_route.py')
-rw-r--r--pysite/base_route.py22
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):