我正在构建一个应用程序,让用户将图像上传到服务器,服务器将返回数据库中最相似的图像。我实现了一个基本的算法来做到这一点,但我不知道如何真正让用户上传图像到服务器。我使用的是django框架。
我现在已经实现了一个功能,通过与CreateModelMixin实现ViewSet上传图像到数据库。然而,我想让用户上传一个图像,运行我的算法,然后返回和ID最相似的图像。我应该研究什么函数/视图集?我是REST的初学者
在这种情况下,我将通过允许序列化器完成繁重的工作并保持视图精简来解决这个问题。
class ImageUploadSerializer(serializers.Serializer):
"""
This serializer will accept the uploaded image,
run the custom algorithm and return the queryset
of the similar images.
"""
[#read more about image field in docs][1]
image = serializers.ImageField(write_only=True)
similar_image = serializers.ImageField(read_only=True)
def get_similar_image(self, obj):
"""
Sends the image to the custom alogrithm
and returns the most similar image
"""
# your function to return the similar image
return most_similiar_image(self.validated_data.get("image"))
class Meta:
fields = ("image", "similar_image")