将xml渲染到视图

时间:2011-05-18 14:44:08

标签: python django django-views

情景就是这样。

我从网站上获得一个原子文件(比如A)。第三方将通过我的网站(例如B)请求此原子文件。

我正在编写一个Django应用程序,它会经常轮询网站A并将其存储为文件。现在,当第三方通过网站B请求该文件时,我将不得不在浏览器中将该文件显示为xml。

我的问题是如何将整个xml文件渲染到Django中的视图?

 render_to_response

需要一个模板。我不能这样使用模板。我只需要在视图中显示该文件。我该怎么做?

4 个答案:

答案 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'