routes.py 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. import os
  2. import flask
  3. import pystache
  4. import lc.model as m
  5. import lc.request as r
  6. app = flask.Flask(__name__)
  7. loader = pystache.loader.Loader(extension="mustache", search_dirs=["templates"],)
  8. def render(name, **kwargs):
  9. """Load and use a Mustache template from the project root"""
  10. template = loader.load_name(name)
  11. renderer = pystache.Renderer(missing_tags="strict", search_dirs=["templates"])
  12. return renderer.render(template, kwargs)
  13. @app.route("/")
  14. def index():
  15. return render("main", title="main", content="whoo")
  16. @app.route("/u", methods=["POST"])
  17. def create_user():
  18. print(flask.request.data)
  19. u = m.User.from_request(r.User.from_json(flask.request.data))
  20. return flask.redirect(u.base_url())
  21. @app.route("/u/<string:user>", methods=["GET", "POST"])
  22. def get_user(user):
  23. u = m.User.by_slug(user)
  24. return render(
  25. "main", title=f"user {u.name}", content=render("linklist", links=u.links),
  26. )
  27. @app.route("/u/<string:user>/l", methods=["POST"])
  28. def create_link(user):
  29. pass
  30. @app.route("/u/<string:user>/l/<string:link>", methods=["GET", "POST"])
  31. def link(user):
  32. pass
  33. @app.route("/u/<string:user>/t/<path:tag>")
  34. def get_tagged_links(user, tag):
  35. pass