我使用此代码从日志文件中读取数据并在浏览器中显示,但其格式很难阅读,因为没有换行符,所有文本文件都出现在单个段落中。
data_file = open('/var/log/secure', 'r')
data = data_file.readlines()
variables = RequestContext(request, {
'data1': data,
'var2': 'test'
})
return render_to_response('logfiles.html', variables)
模板
{% block content %}
{{ data1 }}
{% endblock %}
有没有办法保持数据与原始文件相同?
答案 0 :(得分:3)
在输出周围使用<pre></pre>
标记。
{% block content %}
<pre>{{ data1 }}</pre>
{% block content %}
此外,data_file.readlines()正在返回一个列表...请尝试使用data_file.read(),并注意大文件 - 使用此代码可以快速调整RAM。
在视图中你可以做到:
data_file = open('/var/log/secure', 'r')
variables = RequestContext(request, {
'data_file': data_file,
'var2': 'test'
})
return render_to_response('logfiles.html', variables)
在模板上:
{% block content %}
<pre>{{ data_file.read }}</pre>
{% endblock %}
请注意,这不能解决暂停服务器或客户端的大文件的问题,在现实世界中,您可能希望将显示限制为几MB,并提供下载完整文件的链接。
答案 1 :(得分:1)
使用linebreaks过滤器
答案 2 :(得分:0)
尝试{{ data|linebreaks }} or {{ data | linebreaksbr }}
这有助于保留数据中的换行符