Django,处理来自外部服务器的响应

Django, handle Response from external server

问题是如何处理来自外部服务器的 HttpResponce?

我的想法是将 json 数据发送到外部服务器

(例如搜索数据 {'keyword': keyword, 'limit':limit, 'db':db}

response = requests.post(url, json = userupload, headers=headers)

之后,我从服务器收到 json 数据

的响应

return HttpResponse(response)

它在屏幕上,但正如您所理解的那样,对用户来说不是一个好的视图...

那么我怎样才能在适当的 html table 中添加这些数据呢? (最好的选择是我可以在同一页上打印出来)

https://docs.djangoproject.com/en/1.9/intro/tutorial03/ 在 django 教程中,您将学习如何使用 html 和上下文数据呈现响应。

如果您正在使用 requests,您可以这样做:

response = requests.api.post(...
context = json.loads(response.json())
return render(request, 'index.html', context)

json api 的一大优势是您可以使用 javascript 异步访问它。如果您只想呈现响应而不调用数据库来操作来自 json api.

的数据,则应该查看一下

如果我没理解错的话,您想要将 post 请求的输出呈现为 JSON 格式到 HTML 文件中。

为此,将 json 编码的对象从视图传递到模板:

views.py:

import json

def myview(request):
    obj = requests.post(url, json = userupload, headers=headers)
    return render_to_response("template.html", {"obj_as_json": json.dumps(obj.json())})

template.html:

<html>
    <head>
    <script type="text/javascript">
    var obj = {{ obj_as_json }};
    </script>
    </head>
    ...
</html>