1
0

index.py 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  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. IndexApp.print_load_page_log(f"hello")
  13. return render_template("index/hello.html")
  14. @index.route('/index')
  15. def index_page():
  16. blog_list = BlogArticle.get_blog_list(limit=5, offset=0, not_top=True)
  17. msg_list = load_message_list(limit=6, offset=0, show_secret=False)
  18. IndexApp.print_load_page_log(f"index")
  19. return render_template("index/index.html",
  20. blog_list=blog_list,
  21. msg_list=msg_list,
  22. show_email=current_user.check_role("ReadUserInfo"))
  23. @index.app_errorhandler(404)
  24. def error_404(e):
  25. IndexApp.print_load_page_log(f"404")
  26. return render_template("index/error.html", error_code="404", error_info=f"你似乎来到一片荒漠:{e}"), 404
  27. @index.app_errorhandler(405)
  28. def error_405(e):
  29. IndexApp.print_load_page_log(f"405")
  30. return render_template("index/error.html", error_code="404", error_info=f"请求错误:{e}"), 405
  31. @index.app_errorhandler(403)
  32. def error_403(e):
  33. IndexApp.print_load_page_log(f"403")
  34. return render_template("index/error.html", error_code="404", error_info=f"权限不足:{e}"), 403
  35. @index.app_errorhandler(500)
  36. def error_500(e):
  37. IndexApp.print_load_page_log(f"500")
  38. return render_template("index/error.html", error_code="404", error_info=f"服务器出问题啦:{e}"), 500
  39. @index.context_processor
  40. def inject_base():
  41. return {"top_nav": ["active", "", "", "", "", ""]}
  42. @index.app_context_processor
  43. def inject_base():
  44. return {"blog_name": conf['blog-name'],
  45. "top_nav": ["", "", "", "", "", ""],
  46. "blog_describe": conf['blog-describe'],
  47. "conf": conf}
  48. class IndexApp(App):
  49. def __init__(self, import_name):
  50. super(IndexApp, self).__init__(import_name)
  51. global app
  52. app = self._app
  53. app.register_blueprint(index, url_prefix="/")