情景就是这样。
我从网站上获得一个原子文件(比如A)。第三方将通过我的网站(例如B)请求此原子文件。
我正在编写一个Django应用程序,它会经常轮询网站A并将其存储为文件。现在,当第三方通过网站B请求该文件时,我将不得不在浏览器中将该文件显示为xml。
我的问题是如何将整个xml文件渲染到Django中的视图?
render_to_response
需要一个模板。我不能这样使用模板。我只需要在视图中显示该文件。我该怎么做?
答案 0 :(得分:13)
做这样的事情。
return render(request, 'myapp/index.html', {"foo": "bar"} content_type="application/xhtml+xml")
答案 1 :(得分:8)
您只需使用'text/xml'
参数将MIME类型定义为content_type
:
return HttpResponse(open('myxmlfile.xml').read(), content_type='text/xml')
答案 2 :(得分:3)
如果您不想渲染模板,请不要这样做。 render
只是呈现模板的快捷方式。如果您只想显示文本,只需将其传递给HttpResponse。
由于您的数据位于文件中,因此可以使用:
return HttpResponse(open('myxmlfile.xml').read())
虽然您应该注意并发问题,但如果一次有多个人访问您的网站。
答案 3 :(得分:0)
return render(request, 'products.xml', content_type='text/xml')
render
功能也可以使用;您必须像jdelos的答案一样添加,只需添加content_type='text/xml'
。