Invalid 500 error page

I have the following code in __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 

He used to catch all 500 errors and show my beautiful 500.html template. However, I moved all of my views to separate drawing files, and now the 500 error handler does not work. However, this is only a handler. 404 works fine.

If the server generates a 500 error, it will display the Chrome INTERNAL SERVER ERROR error message by default, and not my template. Did I do something wrong when I created all my drawings that could create this problem?

Here is the whole __init__.py file

 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) 
+4
source share
1 answer

Something I did not understand ... from Flask docs

Please note that if you add an error handler for the "500 Internal Server" Error ", Flask will not start it if it is running in debug mode.

+11
source

All Articles