Django - Ausnahme fangen

7

Es könnte eine Python-Newbie-Frage sein ...

%Vor%

Selbst mit DEBUG = True, möchte ich nicht, dass raise Exception mir diese gelbe Seite gibt. Ich möchte die Ausnahme behandeln, indem ich Benutzer auf eine Fehlerseite umlenke oder den Fehler zeige (gib eine CSS-Fehlermeldung oben auf der Seite an ...)

Wie gehe ich damit um? Kann mich jemand führen? Wenn ich es einfach hochfahre, bekomme ich eine gelbe Debug-Seite (ich möchte auch nicht, dass bestimmte Ausnahmen die Seite nicht funktionieren lassen, indem die Debug-Seite angezeigt wird, wenn DEBUG = True).

Wie gehe ich mit diesen Ausnahmen in views.py um?

Danke.

    
user423455 05.06.2012, 01:07
quelle

3 Antworten

19

Sie haben hier drei Möglichkeiten.

  1. Erstellen Sie einen 404-Handler oder 500-Handler
  2. Fangen Sie die Ausnahme an anderer Stelle in Ihrem Code auf und führen Sie die entsprechende Umleitung durch
  3. Bieten Sie benutzerdefinierte Middleware mit dem process_exception implementiert

Middleware Beispiel:

%Vor%     
Josh Smeaton 05.06.2012, 01:16
quelle
4

Sie können einen 404-Fehler auslösen oder Benutzer einfach mit der Fehlermeldung

auf Ihre benutzerdefinierte Fehlerseite umleiten %Vor%
  1. Django 404-Fehler
  2. Django-Weiterleitung
chehov 05.06.2012 01:16
quelle
0

Ein anderer Vorschlag könnte sein, das Django-Messaging-Framework zu verwenden, um Flash-Nachrichten anstelle von anzuzeigen eine Fehlerseite.

%Vor%

Und dann in der Ansicht wie in Django Dokumentation:

%Vor%     
lime 25.10.2016 08:48
quelle