Django REST-Framework erfordert keine Modellquelle oder ein Abfrage-Set, obwohl es am besten funktioniert, wenn Sie mit einem von beiden arbeiten. It does provide a basic Serializer
aus diesem Grund, as well as basic APIView
classes zu ermöglichen, dass Inhaltsverhandlung über Standard Django klassenbasierte Ansichten verwendet werden.
Sie werden die Serializer
höchstwahrscheinlich nicht verwenden müssen, außer Sie wollten das Ergebnisobjekt serialisieren. Die andere allgemeine Verwendung für eine Serializer
besteht darin, die eingehenden Daten zu validieren und in ein erwartetes Format zu konvertieren.
Wenn Sie nur einen Basiswert zurückgeben möchten (Sie haben nicht angegeben, was "das Ergebnis einer Matrixmultiplikation" eigentlich sein könnte), dann ist sogar die Verwendung der Basisansichten ein Schritt vom manuellen manuellen Ausführen . Mit dem Objekt Response
, das von Django REST Framework bereitgestellt wird, können Sie beliebige Daten zurückgeben und automatisch in eine vergleichbare JSON- oder XML-Darstellung konvertieren. Sie müssen nie aufrufen oder die Daten in eine bestimmte Darstellung zwingen, das Objekt Response
erledigt alles für Sie.
from rest_framework.response import Response
from rest_framework import serializers, views
class IncredibleInputSerializer(serializers.Serializer):
model_input = serializers.CharField()
class IncredibleView(views.APIView):
def get(self, request):
# Validate the incoming input (provided through query parameters)
serializer = IncredibleInputSerializer(data=request.query_params)
serializer.is_valid(raise_exception=True)
# Get the model input
data = serializer.validated_data
model_input = data["model_input"]
# Perform the complex calculations
complex_result = model_input + "xyz"
# Return it in your custom format
return Response({
"complex_result": complex_result,
})
In dem obigen Beispiel erstellen wir ein IncredibleInputSerializer
, die die model_input
Abfrageparameter, um sicherzustellen, bestätigt, dass es in der Anforderung enthalten ist. Dies ist ein sehr einfaches Beispiel, da Django REST Framework unterstützt, zusätzliche Dinge für die Eingabe zu tun, z. B. das Konvertieren in eine Zahl or validating, die einem bestimmten Format entspricht.
Natürlich, wenn Sie ein Objekt oder eine Liste von Objekten serialisieren müssen, dann ist das das Django REST Framework. Es muss kein Modellobjekt sein, es kann ein Objekt mit einem Attribut oder Methoden sein, um die Daten zu erhalten, oder auch nur ein einfaches Wörterbuch, und Django REST Framework sollte es für Sie serialisieren können.
Auschecken: [Verwenden von Tastypie mit Nicht-ORM-Datenquellen] (http://django-tastypie.readthedocs.org/en/latest/non_orm_data_sources.html) –
empfehlen dringend DRF über TP http: //www.django -rest-framework.org/api-guide/views/ – Anentropic