[PYTHON] [Django] Créez votre propre page d'erreur 403, 404, 500

Aperçu

J'ai étudié comment créer une page d'erreur telle que 404 Not Found, donc je vais la résumer.

Erreur examinée cette fois

Je vais aborder les codes d'erreur suivants.

manière

Sous n'importe quel répertoire de modèles,

Endroit. Ensuite, lorsque l'erreur cible est générée, le modèle sera lu automatiquement.

Exemple

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

Implémentez votre propre page 404, etc. comme ci-dessous.

404.html


{% extends "base.html" %}
{% block content %}
<section>
    <div>
        <label>404 Not Found<br>La page que vous recherchez est introuvable.<br><a class="hover-under" href="{% url 'top' %}">Retour en haut de la page</a></label>
    </div>
</section>
{% endblock %}

Exceptions où chaque code d'erreur est craché

Ces pages sont renvoyées lorsque vous appelez l'exception pour laquelle chaque code d'état doit être renvoyé.

404 Not Found Soulevez la classe Http404 dans le package django.http.

views.py


from django.http import Http404


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

403 Forbidden Il existe une classe PermissionDenied dans 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 Utilisez des erreurs normales qui ne détectent pas ou ne renvoient pas explicitement ce qui entraînerait une InternalServerError normale, telle qu'une erreur de syntaxe.

views.py


from .models import Example


class MyView(View):
    def index(self):
        try:
            _instance = Example.objects.get(id=1)
        except Example.DoesNotExists:
            #Lancer une exception (généralement pas beaucoup)
            raise Exception

Recommended Posts

[Django] Créez votre propre page d'erreur 403, 404, 500
Créez votre propre middleware Django
Créez votre propre exception
Créez votre propre service de résolution de noms
Votre propre client Twitter réalisé avec Django
Créez vos propres commandes Linux en Python
Créez votre propre serveur DNS avec Twisted
Créez un modèle pour votre planning Django
Créez votre propre valeur composite avec SQLAlchemy
Création de la première application avec Django startproject
Créez une roue de votre propre module OpenCV
Erreur de version Django2.2 SQLite3
Créer un planning Django
Mémo pour créer votre propre Box avec le Python de Pepper
Créez votre propre Big Data en Python pour validation
Erreur Django settings.py SECRET_KEY
Créez votre propre stéréogramme aléatoire (RDS) en Python.
[Blender x Python] Créez votre propre fonction et résumé jusqu'à présent
Créer une liste Django Todo
Apprentissage par renforcement 23 Créez et utilisez votre propre module avec Colaboratory
Créer une API avec Django
Les débutants de Django créent des applications simples 3
Les débutants de Django créent des applications simples 1
Réglage du site d'administration de Django
Création de liste de tâches [Python Django]
Créer une page d'accueil avec django
Les débutants de Django créent des applications simples 2
Créer un écran de connexion Django
Installez Django sur Mac
Stratégie d'erreur du serveur Django (500) [Adcare 2019]
Créer et lister des modèles Django
Les débutants de Django créent des applications simples 5
Essayez docker: créez votre propre image de conteneur pour une application Web Python
Créez votre propre plateforme IoT en utilisant raspberrypi et ESP32 (partie 1)