【发布时间】:2013-06-01 19:04:38
【问题描述】:
我有一个 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')
视图函数如下所示:
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 脚本上传文件?我还尝试编写一个不使用表单但也不起作用的不同视图函数。
【问题讨论】:
-
我将使用 scp 将文件复制过来,直到我能获得有关此问题的帮助
标签: python django urllib2 urllib