Ich bin ziemlich neu in Django und habe einige Anforderungen, die die Erstellung einer Django-Anwendung als Frontend für einen API-Server beinhalten.Django-Modelle mit API anstelle der Datenbank
Diese App sollte kaum jemals Daten in einer lokalen Datenbank speichern müssen. Stattdessen sollten wir auf eine REST-API zugreifen, um Daten abzurufen und zu veröffentlichen.
Da ich mit dem Framework weniger vertraut bin, wo sollte ich die Logik zum Abrufen und Bearbeiten von Daten auf der Remote-API platzieren? Mein erster Gedanke war, dies in die models.py-Datei zu stellen, aber die Modelle scheinen speziell für den Datenbankzugriff in Django entwickelt worden zu sein.
Also dann habe ich Anfrage Aufrufe in meine Form Klassen Get/Post-Funktionen. Dies scheint jedoch, als würde ich die Datenlogik mit den Ansichten vermischen. Außerdem bemerkte ich, dass das erneute Laden von Seiten nach dem Senden eines Formulars dazu führen würde, dass das Formular die ursprüngliche GET-Anforderung für das Formular enthielt, bis ich den Server neu startete.
Es scheint, dass ich diese Logik woanders platzieren sollte, aber ich möchte, dass jemand erklärt, was "Standard" in diesem Zusammenhang ist.
Ich bin mir sicher, dass ich nicht die erste Person bin, die darauf stößt und möchte etwas darüber wissen, wie andere Projekte in Django damit umgehen. Danke für deine Beratung.
Vielen Dank für den Vorschlag, aber Javascript-only funktioniert nicht wegen der Herkunft Grenzen zu überqueren. Auch Django wird verwendet, um ein paar Apps auf dem Projekt wie ein Admin-System und einige andere Anforderungen zu erstellen. Aber dieser spezielle Teil in unserem Teil besteht nur darin, einige API-Aufrufe an einen anderen Server zu senden, um ihn zu manipulieren. Auch wenn es vielleicht ein Verdienst wäre, ein anderes Framwork oder eine andere Sprache zu verwenden, bin ich in diesem Fall mehr als wahrscheinlich mit Django "festgefahren". Die Kontinuität des Projekts ist wahrscheinlich langfristig wichtiger als die Auswahl des besten Tools für eine Aufgabe. – Terry