如何在django / python中读取日志文件后保持数据格式化

时间:2011-05-27 06:29:56

标签: python django readfile

我使用此代码从日志文件中读取数据并在浏览器中显示,但其格式很难阅读,因为没有换行符,所有文本文件都出现在单个段落中。

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 %}

有没有办法保持数据与原始文件相同?

3 个答案:

答案 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 }}这有助于保留数据中的换行符