将XML渲染到视图中

16 投票
5 回答
25726 浏览
提问于 2025-04-16 17:53

场景是这样的。

我从一个网站(比如说A)获取一个atom文件。然后,有一个第三方会通过我的网站(比如说B)请求这个atom文件。

我正在写一个Django应用,它会定期去网站A获取这个文件并把它存储为一个文件。现在,当第三方通过网站B请求这个文件时,我需要在浏览器中以xml格式显示这个文件。

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

 render_to_response

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

5 个回答

19

做一些像下面这样的事情:

return render(request, 'myapp/index.html', {"foo": "bar"}, content_type="application/xhtml+xml")
21

你只需要通过 content_type 参数把 MIME 类型设置为 'text/xml' 就可以了:

return HttpResponse(open('myxmlfile.xml').read(), content_type='text/xml')
6

如果你不想渲染一个模板,那就别去做。render 只是一个用来渲染模板的快捷方式。如果你只是想显示一些文本,那就直接把它放进 HttpResponse 里就行了。

因为你的数据在一个文件里,这样做是可以的:

return HttpResponse(open('myxmlfile.xml').read())

不过你要注意并发问题,也就是说如果有好几个人同时访问你的网站,可能会出现一些问题。

撰写回答