[PYTHON] [Django] Erstellen Sie Ihre eigene 403, 404, 500-Fehlerseite

Überblick

Ich habe untersucht, wie eine Fehlerseite wie 404 Not Found erstellt wird, daher werde ich sie zusammenfassen.

Fehler diesmal untersucht

Ich werde auf die folgenden Fehlercodes eingehen.

Weise

In einem beliebigen Vorlagenverzeichnis

Platz. Wenn dann der Zielfehler ausgelöst wird, wird die Vorlage automatisch gelesen.

Beispiel

myproject
  - myapp
    - urls.py
    - views.py
    - models.py
    - app.py
    - forms.py
    - templates
      - 403.html
      - 404.html
      - 500.html

Implementieren Sie Ihre eigene 404-Seite usw. wie unten.

404.html


{% extends "base.html" %}
{% block content %}
<section>
    <div>
        <label>404 Not Found<br>Die gesuchte Seite wurde nicht gefunden.<br><a class="hover-under" href="{% url 'top' %}">Gehen Sie zurück zur obersten Seite</a></label>
    </div>
</section>
{% endblock %}

Ausnahmen, bei denen jeder Fehlercode ausgespuckt wird

Diese Seiten werden zurückgegeben, wenn Sie die Ausnahme aufrufen, für die jeder Statuscode zurückgegeben werden soll.

404 Not Found Erhöhen Sie die Klasse "Http404" im Paket "django.http".

views.py


from django.http import Http404


class MyView(View):
    def index(self):
        raise Http404

403 Forbidden Es gibt eine PermissionDenied Klasse in django.core.exceptions.

views.py


from django.core.exceptions import PermissionDenied


class MyView(View):
    def index(self):
        if not self.request.user.is_authenticated:
            raise PermissionDenied

500 Internal Server Error Verwenden Sie einen normalen Fehler, der etwas nicht abfängt oder explizit zurückgibt, was zu einem normalen InternalServerError führen würde, z. B. einen Syntaxfehler.

views.py


from .models import Example


class MyView(View):
    def index(self):
        try:
            _instance = Example.objects.get(id=1)
        except Example.DoesNotExists:
            #Eine Ausnahme auslösen (normalerweise nicht viel)
            raise Exception

Recommended Posts

[Django] Erstellen Sie Ihre eigene 403, 404, 500-Fehlerseite
Erstellen Sie Ihre eigene Django-Middleware
Erstellen Sie Ihre eigene Ausnahme
Erstellen Sie Ihren eigenen Namensauflösungsdienst
Ihr eigener Twitter-Client mit Django
Erstellen Sie Ihre eigenen Linux-Befehle in Python
Erstellen Sie mit Twisted Ihren eigenen DNS-Server
Erstellen Sie ein Modell für Ihren Django-Zeitplan
Erstellen Sie mit SQLAlchemy Ihren eigenen zusammengesetzten Wert
Erstellen der ersten App mit Django Startprojekt
Erstellen Sie ein Rad Ihres eigenen OpenCV-Moduls
Django2.2 SQLite3-Versionsfehler
Erstellen Sie einen Django-Zeitplan
Memo zum Erstellen einer eigenen Box mit Peppers Python
Erstellen Sie Ihre eigenen Big Data in Python zur Validierung
Django settings.py SECRET_KEY Fehler
Erstellen Sie Ihr eigenes Random Dot Stereogram (RDS) in Python.
[Blender x Python] Erstellen Sie Ihre eigene Funktion und Zusammenfassung
Django Todo Listenerstellung
Reinforcement Learning 23 Erstellen und verwenden Sie Ihr eigenes Modul mit Colaboratory
Erstellen Sie eine API mit Django
Django-Anfänger erstellen einfache Apps 3
Django-Anfänger erstellen einfache Apps 1
Optimieren der Django-Administrationsseite
ToDo-Listenerstellung [Python Django]
Erstellen Sie eine Homepage mit Django
Django-Anfänger erstellen einfache Apps 2
Erstellen Sie einen Django-Anmeldebildschirm
Installieren Sie Django auf dem Mac
Django Server Error (500) Strategie [2019 Adcare]
Erstellen und listen Sie Django-Modelle auf
Django-Anfänger erstellen einfache Apps 5
Docker ausprobieren: Erstellen Sie Ihr eigenes Container-Image für eine Python-Web-App
Erstellen Sie Ihre eigene IoT-Plattform mit Himbeerpi und ESP32 (Teil 1)