Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用Django';s render()_Python_Json_Django_Mediafire - Fatal编程技术网

Python 使用Django';s render()

Python 使用Django';s render(),python,json,django,mediafire,Python,Json,Django,Mediafire,我正在学习Django的教程,但未能使用Django的render()函数显示API响应 型号.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 ...

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

型号.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
...
...
def view_Version(request):
    hr = HttpResponse(MF_Version().get_MF_Version())
    return render(request, 'mediafire/version.html', {'hr': hr})
    # return hr
...
视图.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
...
...
def view_Version(request):
    hr = HttpResponse(MF_Version().get_MF_Version())
    return render(request, 'mediafire/version.html', {'hr': hr})
    # return hr
...
version.html

{% if 1 %}
    {{ hr }}
{% endif %}
浏览器输出:

<HttpResponse status_code=200, "text/html; charset=utf-8">
{"response":{"action":"system\/get_version","current_api_version":"1.5","result":"Success"}}
MefiaFire响应:

<HttpResponse status_code=200, "text/html; charset=utf-8">
{"response":{"action":"system\/get_version","current_api_version":"1.5","result":"Success"}}
如果我在view.py文件中注释掉
return render(…)
,并将其替换为
return hr
,我确实看到了来自MediaFire的JSON响应,但我无法确定如何访问HTML模板中的
action
current\u api\u version
result

感谢您的帮助

MF\u Version()。获取MF\u Version()
获取json

您可以尝试以下方法:

def view_Version(request):
    hr = MF_Version().get_MF_Version().json()
    return render(request, 'mediafire/version.html', {'hr': hr}
使用,自Django 1.7起提供

from django.http import JsonResponse

def view_Version(request):
    return JsonResponse(MF_Version().get_MF_Version())
你根本不需要渲染

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

您的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)})

我需要使用render()。这方面运气好吗?请。接受答案或提供您自己的答案,输出:HttpResponse status_code=200,“text/html;charset=utf-8”