Как сохранить данные отформатированными после чтения из файлов журнала в django / python - PullRequest
4 голосов
/ 27 мая 2011

Я использовал этот код для чтения данных из файлов журнала и отображения в браузере, но его формат очень трудно читать, поскольку не было разрывов строк и весь текстовый файл отображается в одном абзаце.

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)

template

{% block content %}
   {{ data1 }} 
{% endblock %}

Можно ли сохранить данные такими же, как в оригинальном файле?

Ответы [ 3 ]

3 голосов
/ 27 мая 2011

Используйте теги вокруг вывода.

<code>{% block content %}
     <pre>{{ data1 }}
{% block content%}

Кроме того, data_file.readlines () возвращает список ... Вместо этого попробуйте data_file.read () и следите за большими файлами - с помощью этого кода вы можете довольно быстро освободить свою память.

На вид вы можете сделать просто:

data_file = open('/var/log/secure', 'r') 

variables = RequestContext(request, {
        'data_file': data_file,
        'var2': 'test'
})
return render_to_response('logfiles.html', variables)

А по шаблону:

<code>{% block content %}
    <pre>{{ data_file.read }}
{% endblock%}

Обратите внимание, что это не решит проблему с большими файлами, останавливающими ваш сервер или клиент, в реальном мире вы можете захотеть ограничить отображение до нескольких МБ и предоставить ссылку для загрузки полного файла.

1 голос
/ 27 мая 2011

Использовать разрывы строк фильтр

0 голосов
/ 31 декабря 2014

Попробуйте {{ data|linebreaks }} or {{ data | linebreaksbr }} это поможет сохранить разрывы строк в ваших данных

...