I'm quite new to django and I just can't figure out a way to upload a simple html file to django using requests.post(). I tried the steps given in this https://blog.vivekshukla.xyz/uploading-file-using-api-django-rest-framework/ but I keep getting a status 400 when I give
import requests
file_ob = open("/root/Desktop/sampletext.html", "rb")
print(file_ob)
payload = {
    'remark1': 'hey',
    'remark2': 'hello',
    'File': file_ob
}
r = requests.post("http://127.0.0.1:8000/upload/files/", data=payload)
print(r.status_code)
models.py
class Files(models.Model):
    remark1 = models.CharField(max_length=20)
    remark2 = models.CharField(max_length=20)
    File = models.FileField(blank=False, null=False)
views.py
class FileView(APIView):
    parser_classes = (MultiPartParser, FormParser)
    def post(self, request, *args, **kwargs):
        file_serializer = FileSerializer(data=request.data)
        if file_serializer.is_valid():
            file_serializer.save()
            return Response(file_serializer.data, status=status.HTTP_201_CREATED)
        else:
            return Response(file_serializer.errors, status=status.HTTP_400_BAD_REQUEST)
    def get(self, request):
        files = Files.objects.all()
        file_serializer = FileSerializer(files, many=True)
        return Response(file_serializer.data, status=status.HTTP_200_OK)
serializers.py
class FileSerializer(serializers.ModelSerializer):
    class Meta:
        model = Files
        fields = '__all__'
urls.py
urlpatterns=[
    path('admin/', admin.site.urls),
    path('upload/files/', FileView.as_view())
]
Here is the error I get from server:
Bad Request: /upload/files/
[12/May/2020 08:29:45] "POST /upload/files/ HTTP/1.1" 400 84
What am I doing wrong? Is there a better way to do this? I cant find any example online where requests.post() was used. It's Postman everywhere. 
 
    