如何在不使用html表单的情况下将文件发布到Django

2024-09-30 01:31:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前正在尝试向服务端点发布一个用django编写的文件。在

我可以找到很多这样的例子(exert from here):

def upload_file(request):
    if request.method == 'POST':
        form = UploadFileForm(request.POST, request.FILES)
        if form.is_valid():
            handle_uploaded_file(request.FILES['file'])
            return HttpResponseRedirect('/success/url/')
     ........

但是如何使用test clienturllib发出请求,它们可以在文件不是来自HTML表单时将文件传递给服务器?我目前正在尝试将文件内容url编码为一个json字符串,然后将其传递出去;但事实证明这很麻烦。在

除了下面的回答之外

  1. 别忘了免除csrf服务
  2. 不要设置内容类型或将其显式设置为multipart。在
  3. Consult this for info on how to handle incoming files in your view.

Tags: 文件djangofromformurl内容ifrequest
1条回答
网友
1楼 · 发布于 2024-09-30 01:31:52

{你可以这样说:

>>> r = requests.post('https://api.github.com/user', auth=('user', 'pass'))
>>> r.status_code
200
>>> r.headers['content-type']
'application/json; charset=utf8'
>>> r.encoding
'utf-8'
>>> r.text
u'{"type":"User"...'
>>> r.json
{u'private_gists': 419, u'total_private_repos': 77, ...}

urllib2中,这将是:

^{pr2}$

来源:^{}

在请求中发布一个多部分编码的文件会很容易。官方文件:

>>> url = '/your/recieving/end'
>>> files = {'report.xls': open('report.xls', 'rb')}

>>> r = requests.post(url, files=files)
>>> r.text # response json

相关问题 更多 >

    热门问题