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>
问题是如何处理来自外部服务器的 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>