1
0

index.py 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. from flask import Flask, Blueprint, render_template
  2. from typing import Optional
  3. from flask_login import current_user
  4. from configure import conf
  5. from view.base import App
  6. from core.blog import BlogArticle
  7. from core.msg import load_message_list
  8. index = Blueprint("base", __name__)
  9. app: Optional[Flask] = None
  10. @index.route('/')
  11. def hello_page():
  12. return render_template("index/hello.html")
  13. @index.route('/index')
  14. def index_page():
  15. blog_list = BlogArticle.get_blog_list(limit=5, offset=0, not_top=True)
  16. msg_list = load_message_list(limit=6, offset=0, show_secret=False)
  17. return render_template("index/index.html",
  18. blog_list=blog_list,
  19. msg_list=msg_list,
  20. show_email=current_user.check_role("ReadUserInfo"))
  21. @index.app_errorhandler(404)
  22. def error_404(e):
  23. return render_template("index/error.html", error_code="404", error_info=f"你似乎来到一片荒漠:{e}"), 404
  24. @index.app_errorhandler(405)
  25. def error_404(e):
  26. return render_template("index/error.html", error_code="404", error_info=f"请求错误:{e}"), 405
  27. @index.app_errorhandler(403)
  28. def error_403(e):
  29. return render_template("index/error.html", error_code="404", error_info=f"权限不足:{e}"), 403
  30. @index.app_errorhandler(500)
  31. def error_500(e):
  32. return render_template("index/error.html", error_code="404", error_info=f"服务器出问题啦:{e}"), 500
  33. @index.context_processor
  34. def inject_base():
  35. return {"top_nav": ["active", "", "", "", "", ""]}
  36. @index.app_context_processor
  37. def inject_base():
  38. return {"blog_name": conf['blog-name'],
  39. "top_nav": ["", "", "", "", "", ""],
  40. "blog_describe": conf['blog-describe'],
  41. "conf": conf}
  42. class IndexApp(App):
  43. def __init__(self, import_name):
  44. super(IndexApp, self).__init__(import_name)
  45. global app
  46. app = self._app
  47. app.register_blueprint(index, url_prefix="/")