这与这个问题有关:Django return json and html depending on client python
我有一个用于Django应用程序的命令行Python API。当我通过API访问应用程序时,它应该返回JSON,而在浏览器中应该返回HTML。我可以使用不同的URL来访问不同版本,但如何在 views.py 中渲染HTML模板和JSON到一个模板中?
为了渲染HTML,我将使用:
我有一个用于Django应用程序的命令行Python API。当我通过API访问应用程序时,它应该返回JSON,而在浏览器中应该返回HTML。我可以使用不同的URL来访问不同版本,但如何在 views.py 中渲染HTML模板和JSON到一个模板中?
为了渲染HTML,我将使用:
return render_to_response('sample/sample.html....')
但是如果不使用JSON模板,我该如何做到同样的效果呢?(content-type
应该是application/json
而不是text/html
)
什么会决定输出JSON或HTML?
因此在我的views.py中:
if something:
return render_to_response('html_template',.....)
else:
return HttpReponse(jsondata,mimetype='application/json')