【问题标题】:Django Tastypie pasrsing multi part form dataDjango Tastypie 传递多部分表单数据
【发布时间】:2016-05-05 09:50:07
【问题描述】:

我的应用正在接收作为请求的一部分的多部分表单数据。它在 request.body 作为字符串。有没有一种简单的方法来解析它并将其转换为 python 字典

我的 request.body 给了我以下内容

'------WebKitFormBoundaryUljHZoRAHNz2UgwB\r\nContent-Disposition: form-data; name="password"\r\n\r\n123\r\n------WebKitFormBoundaryUljHZoRAHNz2UgwB\r\nContent-Disposition: form-data; name="email"\r\n\r\na@b.com\r\n------WebKitFormBoundaryUljHZoRAHNz2UgwB--\r\n'

我正在将其转换为字典

        x= re.findall('name=.*\s\s.*\s.*',request.body)
        z={}
        for a in x:
            z[repr(re.findall('".+"',a))[3:-3]]=re.findall('\s\S+\s',a)[0][1:-1]
        requestData=z

但它的效率非常低且有问题。即如果值为空,则会引发错误

【问题讨论】:

    标签: python django tastypie


    【解决方案1】:

    使用 Django 的 MultiPartParser:https://github.com/django/django/blob/master/django/http/multipartparser.py#L45

    from django.http.multipartparser import MultiPartParser
    
    parser = MultiPartParser(request.META, request.body, request.upload_handlers)
    POST, FILES = parser.parse()
    

    或者试试:

    request._load_post_and_files()
    request.POST
    request.FILES
    

    【讨论】:

    • 你的答案有错字应该是parser = MultiPartParser(request.META, request.body,request.upload_handlers) 但我收到了这个错误raise MultiPartParserError('Invalid Content-Type: %s' % content_type)
    • 内容类型是什么?
    • content_type="application/json"
    • 应该是 content_type="multipart/form-data"
    • @SeánHayes 我也有类似的问题。你能回答这个吗?? stackoverflow.com/questions/68002738/…
    猜你喜欢
    • 2013-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-21
    • 1970-01-01
    • 2013-05-01
    • 2016-11-03
    相关资源
    最近更新 更多