該場景如下所示。將xml渲染到視圖
我從網站上得到一個atom文件(比如說A)。第三方將通過我的網站請求這個原子文件(比如說B)。
我正在寫一個Django應用程序,它將經常輪詢網站A並將其存儲爲文件。現在,當第三方通過網站B請求文件時,我必須在瀏覽器中將文件顯示爲xml。
我的問題是如何渲染整個XML文件到Django的視圖?
render_to_response
需要一個模板。我不能使用模板。我只需要在視圖中顯示文件。我該怎麼做呢?
該場景如下所示。將xml渲染到視圖
我從網站上得到一個atom文件(比如說A)。第三方將通過我的網站請求這個原子文件(比如說B)。
我正在寫一個Django應用程序,它將經常輪詢網站A並將其存儲爲文件。現在,當第三方通過網站B請求文件時,我必須在瀏覽器中將文件顯示爲xml。
我的問題是如何渲染整個XML文件到Django的視圖?
render_to_response
需要一個模板。我不能使用模板。我只需要在視圖中顯示文件。我該怎麼做呢?
如果您不想渲染模板,請不要這樣做。 render
只是呈現模板的快捷方式。如果你只是想顯示文本,只需將其傳遞到HttpResponse。
因爲你的數據是在一個文件中,這將工作:
return HttpResponse(open('myxmlfile.xml').read())
雖然你應該提防的併發問題,如果超過一個人在同一時間訪問您的網站。
做這樣的事情。
return render(request, 'myapp/index.html', {"foo": "bar"} content_type="application/xhtml+xml")
的myapp/index.html的是模板嗎?我沒有像foo-> bar這樣的變量。我只是有一個XML文件。我需要使用類似say return render(request,「myxmlfile.xml」)的東西。此xml文件不是模板,而是有效的xml文件。 – vkris 2011-05-18 14:48:46
你只需要使用content_type
參數來定義MIME類型'text/xml'
:
return HttpResponse(open('myxmlfile.xml').read(), content_type='text/xml')
感謝您的澄清。那麼處理這種情況的最好方法是什麼? – vkris 2011-05-18 15:06:41
沒有爲我工作。顯示一個「模塊」對象不可調用錯誤。 silent1mezzo的答案似乎工作正常。 – 2013-06-23 00:51:44