0
XML
ファイルを動的に生成してダウンロードするにはDjango
にする必要があります。ダイナミックに生成されたxmlファイルをDjangoで文字エンコード情報でダウンロードして配信する
は、私は以下のコードでこれを行うことができますが、文字エンコーディング情報なし:
import xml.etree.ElementTree as ET
def get_xml():
my_xml = ET.Element('foo', attrib={'bar': 'bla'})
my_str = ET.tostring(my_xml, 'utf-8', short_empty_elements=False)
return my_str.decode('utf-8')
# my view
def download_xml_file(request):
response = HttpResponse(get_xml(), content_type="application/xml")
response['Content-Disposition'] = 'inline; filename=myfile.xml'
return response
は、私は以下のコードで情報をエンコードする文字を追加することができますが、最初のサーバ内のファイルへの書き込み:
をdef get_xml():
my_xml = ET.Element('foo', attrib={'bar': 'bla'})
tree = ET.ElementTree(my_xml)
fname = 'myfile.xml'
tree.write(fname, xml_declaration=True, encoding='utf-8')
with open(fname, 'r') as fh:
my_str = fh.read()
return my_str
サーバーに最初に書き込むことなく、文字エンコード情報を使用してxmlファイルをダウンロードするにはどうすればよいですか?