Django REST Framework does not require a model source, or a queryset, though it does perform its best when working with either of them. It does provide a basic Serializer for this reason, as well as basic APIView classes to allow for content negotiation to be used on top of standard Django class-based views.
You most likely won't need to use the Serializer unless you were looking to serialize the results object. The other common use for a Serializer is to validate the incoming data and convert it to an expected format.
If you were just looking to return a basic value (you didn't specify what "the result of a matrix multiplication" actually could be), then even just using the basic views is a step up from doing it all manually. The Response object that Django REST Framework provides allows you to return arbitrary data and have it be converted into a comparable JSON or XML representation, automatically. You never need to call json.dumps or coerce the data into a specific representation, the Response object does it all for you.
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 the example above, we create a IncredibleInputSerializer that validates the model_input query parameter to make sure that it is included in the request. This is a very basic example, as Django REST Framework supports doing additional things to the input, like converting it to a number or validating that it conforms to a specific format.
Of course, if you need to serialize an object or list of objects, that's where Django REST Framework excels. It doesn't have to be a model object, it can be an object with attribute or methods to get the data, or even just a basic dictionary, and Django REST Framework should be able to serialize it for you.