【问题标题】:django rest framework file upload using json datadjango rest框架文件上传使用json数据
【发布时间】:2020-12-16 15:22:57
【问题描述】:

我已经定义了我的模型序列化程序和文件视图以使用 api 上传文件。 当我通过使用 Postman 上传文件来测试我的 API 时,它运行良好,并且文件存储在媒体文件夹中。 但在我的 API 中,我以 JSON(字典格式)传递了详细信息。 现在我的代码没有选择文件

{
file:"C:\users\admin\Desktop\abc.txt",
uploader :"akash"
}

当我使用 Postman 尝试此操作时,文件名和上传器存储在数据库中,文件存储在我在 settings.py 文件中定义的媒体文件夹中。

我的问题是如何在 API POST 中使用 JSON 格式上传。

【问题讨论】:

    标签: python-3.x file-upload django-rest-framework


    【解决方案1】:

    您可以使用这段代码。为我工作。

    import requests
    
    
    def upload_file(file, url, token):
        files = {
            "file": file,
        }
    
        headers = {
            "Authorization": "Token " + token,
            "Content-Type": "multipart/form-data;boundary=---WebKitFormBoundaryyrV7KO0BoCBuDbTL"
        }
    
        response = requests.post(url, files=files, headers=headers)
    
        return response
    

    在views.py中:

    if form.is_valid():
        file = form.cleaned_data['file']
    
        response = upload_file(file, url, token)
    

    【讨论】:

    • 如何在 api 中上传文件 ..??您是否有浏览选项以在 api 中上传文件,或者您通过提供 jason 格式的字段来上传文件。
    • views.py 表示从序列化器获取的文件...函数表示如何通过 api 上传它们
    • 我的任务是我有一个文件要上传以及其他几个字段,现在文件名和字段存储在 db 中,文件存储在媒体文件夹中,当我测试使用时,同样的事情成功完成邮差。但是我的 api 没有从本地文件系统中选择文件的浏览选项,而是有一个文本框(我必须在其中上传带有字段的 json 内容)来发布
    • { file:"C:\users\admin\Desktop\abc.txt", uploader :"akash" } , 现在 api 如何从本地文件资源管理器中获取 abc.txt 文件进行上传
    • 因为你有一个 rest api,这意味着你将从某个地方发出一个帖子请求......它可以来自 reactJs 或移动应用程序或其他......对于这些情况,你将有一个浏览选项并从表单或其他东西中获取数据...您将获取这些信息并通过 api 发送...这不是重点吗?如果不是这样,那么我可能无法理解您的问题,或者您没有描述它。
    猜你喜欢
    • 2013-10-25
    • 2015-10-04
    • 2013-12-26
    • 2016-10-25
    • 1970-01-01
    • 1970-01-01
    • 2016-02-16
    • 2021-09-27
    • 1970-01-01
    相关资源
    最近更新 更多