繁体   English   中英

使用python将文件上传到Django服务器

[英]uploading files using python to a Django server

我有一个简单的视图,该视图从用户那里接收文件。 我已经使用浏览器对其进行了测试,并且可以正常运行。

另一方面,我有一个python并针对requestb.in进行了测试,可以看到multipart / form-data和一个http响应代码200。因此,我在接收和存储文件时的视图以及在上传多部分数据时的脚本工作正常。

我的问题是:当我使用脚本将文件上传到视图时,即使获得http状态代码200,也看不到磁盘上存储任何文件,而在使用浏览器的情况下。 您认为是什么问题? 这是我的模型,视图和脚本:

models.py:

class FileUploads(models.Model):
    uploads = models.FileField()

forms.py:

from django import forms
from .models import FileUploads

class UserProfileForm(forms.ModelForm):
    class Meta:
        model = FileUploads
        fields = ['uploads']

views.py:

@csrf_exempt
def upper(request):
    form = UserProfileForm(request.POST or None, request.FILES or None)
    context = {'title': 'welcome', 'form': form}
    if form.is_valid():
        form.save()
        context = {'form': form, 'title': 'thanks'}'
    return render(request, 'upform.html', context)

Python脚本up.py:

import requests
f = open('C:\\Users\\Amir\\Desktop\\snow.jpg', 'rb')
urls='http://127.0.0.1:8000/upper'
r=requests.post(urls, files= {'a':f})
print(r.status_code)

它应该是:

import requests
f = open('C:\\Users\\Amir\\Desktop\\snow.jpg', 'rb')
urls='http://127.0.0.1:8000/upper'
r=requests.post(urls, files= {'uploads':f})
print(r.status_code)

...传递给requests.post的字典中文件的名称需要与Django形式的字段名称匹配:)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM