尝试使用客户错误处理程序时出现'KeyError: None'错误 - Flask



我有以下内容:

def handle_error_404(error):
flash('Server says: {0}'.format(error), 'error')
return render_template('404.html', selected_menu_item=None)

def handle_error_500(error):
flash('Server says: {0}'.format(error), 'error')
return render_template('500.html', selected_menu_item=None)

def init_error_handlers(app):
if app:
app.error_handler_spec[None][404] = handle_error_404
app.error_handler_spec[None][500] = handle_error_500

我遵循了一个关于如何使用客户错误处理程序的教程,但我似乎找不到解决这个错误的方法。我该怎么绕过这个?

flask文档说您应该使用errorhandler装饰器注册一个错误处理程序。使用代码的示例:

def handle_error_404(error):
flash('Server says: {0}'.format(error), 'error')
return render_template('404.html', selected_menu_item=None)

def handle_error_500(error):
flash('Server says: {0}'.format(error), 'error')
return render_template('500.html', selected_menu_item=None)

def init_error_handlers(app):
if app:
app.errorhandler(404)(handle_error_404)
app.errorhandler(500)(handle_error_500)

或者:

def init_error_handlers(app):
if app:
@app.errorhandler(404)
def handle_error_404(error):
flash('Server says: {0}'.format(error), 'error')
return render_template('404.html', selected_menu_item=None)
@app.errorhandler(500)
def handle_error_500(error):
flash('Server says: {0}'.format(error), 'error')
return render_template('500.html', selected_menu_item=None)

最新更新