[PYTHON] Umfang der Erstellung und Veröffentlichung von Django-Malice, einer Django-Anwendung zur Verursachung von HTTP 40X-Fehlern

In der Entwicklungsumgebung (DEBUG = True) zeigt django einen Fehlerbildschirm mit einer vertrauten und nützlichen Stapelverfolgung an, wenn in der Ansicht ein Fehler auftritt.

In einer Produktionsumgebung wird jedoch eine E-Mail an die in ADMINS festgelegte E-Mail-Adresse gesendet, die angibt, dass ein Fehler aufgetreten ist.

Wenn Sie slack_log_handler verwenden, wird der Inhalt des Fehlers an slack gesendet.

Ich habe Django-Malice erstellt, denn wenn etwas nach einem Fehler funktioniert, muss ich es richtig überprüfen.

Über Django-Bosheit

Es enthält auch eine Seite, die HTTP 200 OK zurückgibt, um das normale System (HeartBeat usw.) zu überprüfen.

django-malice (GitHub Repository)

Motivation

――Es ist mühsam, eine Ansicht vorzubereiten, um absichtlich einen Fehler zu verursachen, um Folgendes zu überprüfen. Dann machen und verteilen.

So installieren Sie Django-Malice

  1. Installieren Sie Folgendes mit pip
$ pip install django-malice
  1. Fügen Sie INSTALLED_APPS Folgendes hinzu
INSTALLED_APPS = [
    ...
    "malice",
]
  1. Fügen Sie Folgendes zu urls.py hinzu, das in ROOT_URL_CONF des Projekts angegeben ist
url(r'^malice/', include('malice.urls', namespace='malice')),

Hinweis: In einer Produktionsumgebung ist es sicherer, die URL in eine Zeichenfolge zu ändern, die der Angreifer nicht vorhersagen kann.

Beispiel:

view_urlpatterns = [
    ...
    url(r'^all-your-error-are-belong-to-us-2101/', include('malice.urls', namespace='malice')),
    ...
]
  1. Führen Sie den Server aus und öffnen Sie die folgende URL in Ihrem Browser
$ ./manage.py runserver 0.0.0.0:8000

Stellen Sie sicher, dass andere URLs als 200 einen Fehler zurückgeben.

Wenn DEBUG True ist, wird keine E-Mail an ADMINS gesendet. Setzen Sie daher das DEBUG-Flag auf False und stellen Sie sicher, dass ein Fehlerbericht gesendet wird.

In Bezug auf die Entwicklung

Diese Anwendung erstellte Tests in Circleci, verpackte und verteilte sie während der Zeit des Django-Meetups in Pypi.

Vielen Dank an BeProuds https://twitter.com/hirokiky und https://twitter.com/shimizukawa für die Ausrichtung der Veranstaltung hier!

Wenn du Zeit hast, warum nimmst du nicht am Django-Treffen teil?

Recommended Posts

Umfang der Erstellung und Veröffentlichung von Django-Malice, einer Django-Anwendung zur Verursachung von HTTP 40X-Fehlern
Erläuterung zum Erstellen einer Anwendung zum Anzeigen von Bildern und Zeichnen mit Python
Befehle zum Erstellen eines neuen Django-Projekts
[Persönliche Entwicklung] Eine Geschichte über das Erstellen einer App für Künstler mit SPA mit Django REST Framework und Vue-Cli [DRF + Vue.js]
Versuchen Sie, eine Webanwendung mit Vue.js und Django (Mac Edition) zu erstellen - (1) Umgebungskonstruktion, Anwendungserstellung
Eine Sammlung von Ressourcen, die zum Erstellen und Erweitern von Punktedateien hilfreich sein können
Verfahren zum Erstellen einer Anwendung mit Django mit Pycharm ~ Vorbereitung ~
Die Geschichte der Schaffung eines "Geist- und Zeit-Chatrooms" exklusiv für Ingenieure im Unternehmen