我需要在Django中将txt文件作为HTTPResponse返回。该文件需要包含从列表生成的多行(例如['第一行','第二行'])。 如果我使用DTL和模板,我不能插入任何换行符,除了特定于html的换行符。所以,我目前的解决方案是使用csv.writer写入响应行。它有效,但是没有更优雅的方法来获得看起来像这样的txt文件吗?
import matplotlib
matplotlib.use('Agg')
更新:我想,我的问题是我需要CR,LF换行符。
答案 0 :(得分:1)
如果你有一个字符串列表,并希望将它作为一个字符串输出到响应中,最简单的方法是使用join
:
lines = ['line one', 'line two']
response_content = '\n'.join(lines)
return HttpResponse(response_content, content_type="text/plain")
在模板内部:
{% for line in mylines %}
{{ line }}
{% endfor %}
这应该在输出中将每一行放在它自己的行上。
答案 1 :(得分:0)
你的断言完全是假的。 Django模板语言绝不仅限于HTML;它适用于任何格式,您可以非常乐意使用它来生成文本文件。