首页 > 解决方案 > 如何在同一次点击中上传文件并返回 JSON 响应

问题描述

我在views.py中上传的代码是

def upload(request):
    context = {}
    if request.method == 'POST':
        uploaded_file = request.FILES['document']
        timestr = time.strftime("%Y%m%d-%H%M%S")
        fs = FileSystemStorage()
        uploaded_file.name = timestr+"_"+uploaded_file.name
        name = fs.save(uploaded_file.name, uploaded_file)
        context['url'] = fs.url(name)

    return render(request, 'upload.html', context)

我的 HTML 网页如下所示: 在此处输入图像描述

我正在构建一个 API,并希望在用户选择文件后单击上传按钮时返回 JSON 响应。我正在使用 Django 和 Web 开发新手。

标签: pythondjangoapidjango-rest-frameworkweb-development-server

解决方案


您可以在Django中以三种不同的方式返回 JSON 响应。

  1. HttpResponse()
# using pure Django
from django.http import HttpResponse
return HttpResponse(json.dumps(context), content_type="application/json")
  1. 响应()
# using pure Django
from django.http import JsonResponse
return JsonResponse(context)
  1. 回复()
# using Django Rest Framework
from rest_framework.response import Response
return Response(context)

推荐阅读