diff --git a/src/pallets/__init__.py b/src/pallets/__init__.py index 9f7cc91..64ea353 100644 --- a/src/pallets/__init__.py +++ b/src/pallets/__init__.py @@ -21,7 +21,7 @@ def create_app() -> Flask: db.init_app(app) - from . import models + from . import models, views with app.app_context(): db.create_all() @@ -35,6 +35,8 @@ def create_app() -> Flask: }, ) + app.register_blueprint(views.bp) + forwarded = app.config["FORWARDED"] if forwarded["FOR"] > 0: diff --git a/src/pallets/views.py b/src/pallets/views.py new file mode 100644 index 0000000..1eeb72c --- /dev/null +++ b/src/pallets/views.py @@ -0,0 +1,32 @@ +from flask import Blueprint +from flask import render_template + +from . import db +from . import models + +bp = Blueprint("core", __name__) + + +@bp.route("/", defaults={"path": ""}) +@bp.route("//") +def page(path: str) -> str: + obj = db.get_or_404(models.Page, path) + return render_template([f"{path}.html", "page.html"], page=obj) + + +@bp.route("/people/") +def person(path: str) -> str: + obj = db.get_or_404(models.Person, path) + return render_template("person.html", page=obj) + + +@bp.route("/p/") +def project(path: str) -> str: + obj = db.get_or_404(models.Project, path) + return render_template("project.html", page=obj) + + +@bp.route("/blog/") +def blog_post(path: str) -> str: + obj = db.get_or_404(models.BlogPost, path) + return render_template("blog.html", page=obj)