gpt4 book ai didi

python - Flask 自定义错误页面 500 不工作

转载 作者:太空狗 更新时间:2023-10-29 22:04:46 25 4
gpt4 key购买 nike

我在__init__.py中有以下代码

@app.errorhandler(404)
def page_not_found(e):
return render_template('404.html'), 404

@app.errorhandler(500)
def internal_server_error(e):
return render_template('500.html'), 500

@app.errorhandler(403)
def page_forbidden(e):
return render_template('403.html'), 500

它曾经捕获所有 500 个错误并显示我漂亮的 500.html 模板。但是,我将所有 View 移动到单独的蓝图文件中,现在 500 errorhandler 不起作用。不过,这只是那个处理程序。 404 工作得很好。

如果服务器抛出 500 错误,它将显示默认的 Chrome 内部服务器错误消息,而不是我的模板。我在创建会导致此问题的所有蓝图时是否做错了什么?

这是整个__init__.py文件

import datetime
import mysql.connector
import os
from flask import Flask, render_template, session, request, Blueprint
from flask.ext.moment import Moment
from flask.ext.login import LoginManager
from db_classes import User

from info import info_blueprint
from claims import claims_blueprint
from users import users_blueprint
from members import members_blueprint
from drug import drug_blueprint
from auth import auth_blueprint
from formulary import formulary_blueprint

from config import MYSQL_USR, MYSQL_HOST, MYSQL_PASS, MYSQL_DB, MYSQL_PORT, second_to_live

from decorators import role_required

app = Flask(__name__, template_folder="static/templates")
app.config.from_object('config')

moment = Moment(app)

login_manager = LoginManager()
login_manager.init_app(app)
login_manager.session_protection = 'strong'
login_manager.login_view = 'login'

@login_manager.user_loader
def load_user(user_id):
return User.query.get(int(user_id))


####################
# Blueprints
####################

app.register_blueprint(info_blueprint)
app.register_blueprint(claims_blueprint)
app.register_blueprint(users_blueprint)
app.register_blueprint(members_blueprint)
app.register_blueprint(drug_blueprint)
app.register_blueprint(formulary_blueprint)
app.register_blueprint(auth_blueprint)



#####################
# Error Routes
#####################


@app.errorhandler(404)
def page_not_found(e):
return render_template('404.html'), 404

@app.errorhandler(500)
def internal_server_error(e):
return render_template('500.html'), 500

@app.errorhandler(403)
def page_forbidden(e):
return render_template('403.html'), 500

#####################
# Context Processors
#####################

@app.before_request
def make_session_permanent():
session.permanent = True
app.permanent_session_lifetime = datetime.timedelta(seconds=second_to_live)

@app.context_processor
def inject_time():
return dict(current_time=datetime.datetime.utcnow())

if __name__ == "__main__":
app.run(host= '0.0.0.0', debug=True)

最佳答案

一些我没有意识到的……来自 Flask docs

Please note that if you add an error handler for “500 Internal Server Error”, Flask will not trigger it if it’s running in Debug mode.

关于python - Flask 自定义错误页面 500 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32039583/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com