我使用这段代码从日志文件中读取数据并在浏览器中显示,但它的格式很难阅读,因为没有换行符并且所有文本文件都出现在单个段落中。
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 %}
有什么方法可以使数据与原始文件中的数据保持一致吗?
最佳答案
使用 <pre></pre>
输出周围的标签。
{% block content %}
<pre>{{ data1 }}</pre>
{% block content %}
此外,data_file.readlines() 正在返回一个列表...尝试改用 data_file.read(),并注意大文件 - 您可以使用此代码快速耗尽 RAM。
在 View 中你可以简单地做:
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 并提供下载完整文件的链接。
关于python - 从 django/python 中的日志文件读取后如何保持数据格式化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6148629/