2012-02-09 6 views
6

Nel mio Flask app, ho creato un gestore 404 come questo:Non sto configurando correttamente il mio manipolatore Flask 404?

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

Tuttavia, quando un utente passa a un URL non riconosciuta, il sistema dà un errore interno del server, invece di rendere il mio modello 404. Mi sto perdendo qualcosa?

+1

Hai creato il modello '404.html'? In entrambi i casi, pubblica la traccia dello stack per il tuo errore. Abilita la modalità di debug o la registrazione per la tua app, o semplicemente controlla la console se stai usando il server di sviluppo integrato. –

+0

La mia pagina di errore non ha funzionato fino a quando non ho restituito una stringa come 'errore 404'. Quindi, codifico 'render_template' e ho funzionato bene. Non conosco il motivo per farlo funzionare, ma puoi provarlo. – jaloplo

risposta

7

Errore interno del server è un errore HTTP 500 anziché 404 e non è stato aggiunto alcun gestore di errori. Ciò si verifica quando il server non è in grado di soddisfare correttamente la richiesta del client. Per aggiungere un messaggio di grazia quando si è verificato tale errore, è possibile aggiungere un ErrorHandler come 404.

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

Questo si verifica anche se si dispone di debug impostata su true. Prova a settare debug su falso e vedere se il tuo 404 personalizzato appare allora.

Problemi correlati