1
0
SongZihuan 2 жил өмнө
parent
commit
da0add42c7
2 өөрчлөгдсөн 29 нэмэгдсэн , 1 устгасан
  1. 15 1
      app/__init__.py
  2. 14 0
      templates/error.html

+ 15 - 1
app/__init__.py

@@ -1,4 +1,4 @@
-from flask import Flask
+from flask import Flask, render_template, Response
 from flask.logging import default_handler
 import logging
 import logging.handlers
@@ -11,6 +11,7 @@ from .moment import moment
 from .mail import mail
 from .migrate import migrate
 from .login import login
+from .logger import Logger
 
 from configure import conf
 
@@ -41,6 +42,8 @@ class HTalkFlask(Flask):
                     "User": User,
                     "datetime": datetime}
 
+        self.error_page([400, 401, 403, 404, 405, 408, 410, 413, 414, 423, 500, 501, 502])
+
     def blueprint(self):
         from .index import index
         self.register_blueprint(index, url_prefix="/")
@@ -78,3 +81,14 @@ class HTalkFlask(Flask):
         """ 更新配置 """
         self.config.update(conf)
 
+    def error_page(self, error_code):
+        for i in error_code:
+            def create_error_handle(status):  # 创建一个 status 变量给 error_handle
+                def error_handle(e):
+                    Logger.print_load_page_log(status)
+                    data = render_template('error.html', error_code=status, error_info=e)
+                    return Response(response=data, status=status)
+                return error_handle
+
+            self.errorhandler(i)(create_error_handle(i))
+

+ 14 - 0
templates/error.html

@@ -0,0 +1,14 @@
+{% extends "base.html" %}
+
+{% block title %} 创建 {% endblock %}
+
+{% block content %}
+    <section class="container mt-3">
+        <div class="row">
+            <div class="col-12 text-center">
+                <p> <strong> {{ error_info }} </strong> </p>
+                <a class="btn btn-warning" href="{{ url_for("base.index_page") }}"> 回到主页 </a>
+            </div>
+        </div>
+    </section>
+{% endblock %}