Ich habe untersucht, wie eine Fehlerseite wie 404 Not Found erstellt wird, daher werde ich sie zusammenfassen.
Ich werde auf die folgenden Fehlercodes eingehen.
In einem beliebigen Vorlagenverzeichnis
Platz. Wenn dann der Zielfehler ausgelöst wird, wird die Vorlage automatisch gelesen.
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 %}
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