wake-up-neo.com

Django oder Django Rest Framework

Ich habe eine bestimmte App in Django gemacht und ich weiß, dass Django rest framework für API verwendet wird. Aber als ich angefangen habe, über Django Rest Framework auf ihrer Website.Jedes und jede Sache in API Guide (wie Anfrage, Antwort, Ansichten usw.) .Talks darüber ist besser als Django (Anfrage, Antwort, Ansichten usw.) )

Was ich nicht verstehe, ist, ob diese APIs meine vorhandenen Django Modelle, Ansichten usw. ersetzen oder wie ich sie in meinem vorhandenen Django Code anders verwenden kann

Ich kenne mich gut aus mit Django aber ich kann nicht genau verstehen, was Django Rest Framework ist, obwohl ich einige Zeit damit verbracht habe. (Ich weiß, dass es verwendet wird Für API) brauche ich auch tatsächlich eine API. Meine App kann Daten ohne API an den Server senden. In diesem Fall würde ich eine API benötigen

32
Rookie_123

Mit Django Rest Framework können Sie Ihren Django Server ganz einfach als REST API verwenden.

REST steht für "re presentational s tate t ransfer" und API steht für a pplication p Programmierung i Schnittstelle.

Sie können eine erholsame API mit normalem Django erstellen, aber es wird sehr ordentlich. DRF macht alles einfach. Zum Vergleich ist hier eine einfache GET-Ansicht, die nur reguläres Django verwendet, und eine, die Django Rest Framework verwendet:

Regulär:

from Django.core.serializers import serialize
from Django.http import HttpResponse


class SerializedListView(View):
    def get(self, request, *args, **kwargs):
        qs = MyObj.objects.all()
        json_data = serialize("json", qs, fields=('my_field', 'my_other_field'))
        return HttpResponse(json_data, content_type='application/json')

Und mit DRF wird dies:

from rest_framework import generics


class MyObjListCreateAPIView(generics.ListCreateAPIView):
    permission_classes = [permissions.IsAuthenticatedOrReadOnly]
    serializer_class = MyObjSerializer

Beachten Sie, dass Sie mit DRF auf einfache Weise Listen- und Erstellungsansichten sowie Authentifizierungen haben.

21
J. Hesters

Ob Sie eine API benötigen, hängt davon ab, was Sie tun möchten. Wenn Sie beispielsweise von einem mobilen Gerät UND einer Web-App aus auf alle Django Modelle zugreifen möchten, sollten Sie DRF verwenden.

Warum? Stellen Sie sich vor, Sie entwickeln eine iOS-App, bei der sich Benutzer anmelden können, und Sie möchten Django als Backend verwenden. Sie möchten auch eine Website, mit der sie Änderungen vornehmen können Für die Profilinformationen der App (z. B. die E-Mail-Adresse aktualisieren oder ein Bild hochladen) benötigen Sie eine Möglichkeit, die Informationen in Ihren Django Modelle mit einer Website zu teilen nd Vorgehensweise: Geben Sie dem Benutzer die Möglichkeit, Daten zu erstellen, zu lesen, zu aktualisieren oder zu löschen, indem Sie ihm einfach die URL für den Zugriff auf Informationen aus dem Modell zuweisen von mehreren Geräten, da jedes Gerät eine URL besuchen kann.

Wenn Sie jedoch nur eine einfache Webapp/Webseite erstellen und alles an einem Ort aufbewahren, können Sie einfach nur Django verwenden.

Randnotiz: Es ist eine ziemlich beliebte Meinung, dass Sie versuchen sollten, Ihr Frontend so weit wie möglich von Ihrem Backend zu trennen. Wenn Sie in diesem Fall ein Frontend - Entwicklungsframework wie "React", "Angular" oder "Vue" verwenden möchten, wird es unübersichtlich, all diese Ressourcen in die Django= Vorlagenseiten even if Sie möchten nur eine einfache Web-App/Webseite In diesem Fall würden Sie DRF verwenden, um Ihr Backend einzurichten, und die URLs vom Frontend aus mit einem Tool wie axios aufrufen wahrscheinlich auf so etwas wie Node gehostet werden.

Was Sie wirklich verwenden möchten, hängt davon ab, was Sie von Ihrer App/Site erwarten und wie gut Sie sich mit den einzelnen Tools auskennen.

11
aalberti333