使用urllib将文件上传到Django中的FileField模型

我有一个django文件模型,该模型具有models.FileField字段和用于将文件上传到服务器的表单:


class UploadFile(model.Model):

    filename = models.FileField(upload_to='uploads')

    description = models.CharField(max_length=38, blank=True)


class UploadFileForm(ModelForm):

    class Meta:

        model = UploadFile

        fields = ('filename', 'description')

这是view函数的样子:


def upload_file(request):

    if request.method == 'POST':

        form = UploadFileForm(request.POST, request.FILES)

        if form.is_valid():

            new_file = form.save()

现在,我想拥有一个仅使用标准库的python脚本,使用上述视图功能将文件上传到UploadFile模型。但是,此代码不起作用,因为POST请求没有FILES方法。


import urllib, urllib2

data = urllib.urlencode({'filename': open(uploadfile, "rb"),

                        'description': 'upload test'})

post_req = urllib2.Request(upload_file_url, data)

result = urllib2.urlopen(post_req)

如何在POST请求中添加FILES方法以使用python脚本上传文件?我还尝试编写不使用该表单但不起作用的其他视图函数。


郎朗坤
浏览 236回答 2
2回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python