Django - 在获取POST

时间:2017-05-21 15:52:58

标签: javascript python html django

我目前通过javascript fetch将音频发布到Django服务器,对其进行后处理并返回JsonResponse。

我现在希望在他们进来时在我的网站上显示JsonResponse。

我知道我需要在我的JS中使用某种类型的侦听器,这些侦听器会在每次发出POST请求时被触发,可能是在我的获取功能之后,或者可能是一个单独的函数?

我的Js

function makeLink(){
  let blob = new Blob(chunks, {type: media.type })
  let fd = new FormData;
  fd.append("audioRecording", blob);
  fetch("https://localhost/news/audio/", {method:"POST", body:fd})
  .then(response => response.ok)
  .then(res => console.log(res))
  .catch(err => console.error(err));
}

此POSTS音频并触发以下views.py:

def audio(request):
    if request.method == 'POST':
        #Store audio
        #Make some API calls
        return JsonResponse({"abc":123})

现在我假设我有一个普通的HTML格式的TextField,我希望JsonResponse能够显示在TextField中,而无需重新加载网站。

<!DOCTYPE html>
<html>
<body>
<textarea id="text">
Response should be here
</textarea>
</body>
</html>

我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:1)

这里是我的帖子,我也对你的问题发表了评论:

如果要将响应添加到自定义文本框,则需要使用javascript执行此操作。 Actualy只会将您的响应打印到Web控制台:

console.log(res)

此部分可以更改以将您的回复添加到文本框中。 使用jquery可能看起来如此:

$('#text').append(res);   // If 'res' is your response you want to add

如果您想添加其他内容,请仅替换&#39; res&#39;。

我也建议你使用django-restframework。我也使用这个框架。试试吧 - &gt; django-rest-framework