[PYTHON] Lösung, wenn nicht gefunden, wird angezeigt, wenn die API von Django REST Framework von außen aufgerufen wird

Problem

Als ich versuchte, bestimmte Informationen anzuzeigen, indem ich auf die API von Django REST Framework (DRF) aus Nuxt.js drückte, wurde Not Found im Protokoll auf der Django-Seite angezeigt.

Zunächst dachte ich, es sei ein Problem auf der Django-Seite, also habe ich es einmal auf der DRF-Konsole überprüft, aber die Daten sind vorhanden und können angezeigt werden. Es ist eine einfache Sache, aber ich habe versehentlich einen Fehler gemacht, deshalb lasse ich es für alle Fälle als Artikel.

Lösung

Wenn aufgrund der oben genannten Voraussetzungen nicht gefunden wird, haben Sie beim Festlegen des Einstiegspunkts einen Fehler gemacht.

Erstens ist dies eine Voraussetzung, aber wenn in Djangos Routing eine andere als die in urls.py beschriebene URL eingegeben wird, wird sie bedingungslos nicht gefunden, wenn die 404-Fehlerbehandlung nicht durchgeführt wird. Daher besteht eine hohe Wahrscheinlichkeit, dass die Beschreibung des auf der Seite Nuxt.js aufgerufenen Einstiegspunkts falsch ist.

Zum Beispiel

async asyncData ({ $axios, params }) {
    try {
      const user = await $axios.$get('user')
      return { user }
    } catch (e) {
      return { user: [] }
    }

Wenn Sie versuchen, Daten in Form von, in urls.py des Projekts auf der Django-Seite abzurufen

urls.py


urlspatterns = [
      path('api/',include('sample.urls')),
]

Und schreibe

sample/urls.py


urlspatterns = [
      path('user/',UserListView.as_view()),
]

Sie müssen in einem Format wie diesem schreiben. Dies liegt daran, dass Sie die Daten von "Benutzer" ohne GET nicht von der Adresse wie "API / Benutzer" abrufen können, z. B. wie DRF geschrieben wird. Daher muss Nuxt.js auch so schreiben, dass es dem Routing auf der Django-Seite entspricht.

Es ist einfach, aber wenn Sie das Front-End und das Back-End trennen und den API-Server von außen treffen, ist es leicht, ihn zu übersehen. Zumindest diesmal war ich ein bisschen süchtig danach. Ich bin froh, dass ich das Routing in dieser Angelegenheit besser verstanden habe als zuvor.

Ich hoffe dieser Artikel hilft jemandem.

Recommended Posts

Lösung, wenn nicht gefunden, wird angezeigt, wenn die API von Django REST Framework von außen aufgerufen wird
Erstellen Sie eine REST-API, um dynamodb mit dem Django REST Framework zu betreiben
Verstehen Sie den Komfort des Django Rest Framework
Verschiedene Hinweise zum Django REST-Framework
Versuchen Sie, die Spotify-API in Django zu aktivieren.
So generieren Sie automatisch ein API-Dokument mit dem Django REST-Framework und POST vom Dokumentbildschirm
Ich habe versucht, die Qiita-API von Anfang an zu aktivieren
Spinne nicht gefunden erscheint beim Crawlen mit Scrapy
Als ich die Django-App für Heroku bereitgestellt habe, wurde das Modul nicht gefunden: <Projektname> .wsgi.
Lösung, wenn Linux die eingebaute Kamera nicht erkennt
Lassen Sie uns eine Todo-App mit dem Django REST-Framework erstellen
Wenn Sie mit dem Django REST-Framework filtern möchten
[Django Rest Framework] Passen Sie die Filterfunktion mit Django-Filter an
Erstellen einer API, die mit BERT im Django REST-Framework negativ-positive Inferenzergebnisse zurückgibt
Grundlagen des Django REST-Frameworks
Tipps zum Django Rest Framework
Die erste API, die mit dem Python Djnago REST-Framework erstellt wurde
Zurücksetzen des Passworts über die API mit dem Django Rest Framework