gpt4 book ai didi

python - 使用 Django 的 render() 渲染 JSON 响应

转载 作者:行者123 更新时间:2023-12-01 03:08:58 24 4
gpt4 key购买 nike

我正在学习 Django 的教程,但无法使用 Django 的 render() 函数显示 API 响应。

models.py

...
class MF_Version():
def get_MF_Version(self):
url = 'https://www.mediafire.com/api/1.5/system/get_version.php?response_format=json'
r = requests.get(url)
return r
...

views.py

...
def view_Version(request):
hr = HttpResponse(MF_Version().get_MF_Version())
return render(request, 'mediafire/version.html', {'hr': hr})
# return hr
...

版本.html

{% if 1 %}
{{ hr }}
{% endif %}

浏览器输出:

<HttpResponse status_code=200, "text/html; charset=utf-8">

MefiaFire 回复:

{"response":{"action":"system\/get_version","current_api_version":"1.5","result":"Success"}}

如果我在 view.py 文件中注释掉 return render(...) 并将其替换为 return hr,我确实会看到来自 MediaFire 的 JSON 响应,但我不知道如何访问 HTML 模板中的 actioncurrent_api_versionresult

感谢任何帮助。

最佳答案

使用JsonResponse ,自 Django 1.7 起可用

from django.http import JsonResponse

def view_Version(request):
return JsonResponse(MF_Version().get_MF_Version())

你根本不需要渲染。

如果需要渲染,请按如下方式编写(未经测试):

{% for x in hr %}
{{ x }}: {{ hr.x }}
{% endfor %}

你的Python代码将如下所示:

import json
from django.http import JsonResponse

def view_Version(request):
hr = JsonResponse(MF_Version().get_MF_Version())
return render(request, 'mediafire/version.html', {'hr': json.loads(hr)})

关于python - 使用 Django 的 render() 渲染 JSON 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43081610/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com