Как получить доступ к файлу stati c из тега шаблона в Django для чтения текстового файла? - PullRequest
0 голосов
/ 30 апреля 2020

Я строю систему, в которой я хочу прочитать текстовый файл из моего шаблона. Этот текстовый файл хранится в моей папке stati c. В моих app_filters у меня есть следующая функция:

from django import template

register = template.Library()

@register.filter
def print_file_content(file_name):
    try:
        file = open(file_name, 'r')
        return file.read()
    except IOError:
        return ''

В моем шаблоне я делаю это:

{% load static %}
{% load app_filters %}

<div>{{ "{% static 'my_file.txt' %}" | print_file_content }}</div>

У меня есть файл в моем стати Папка c: myapp/static/my_file.txt, но файл не читается правильно. И раздел просто остается пустым. Как я могу исправить эту проблему? Спасибо за любую помощь.

1 Ответ

0 голосов
/ 01 мая 2020

Вы можете просто сделать это, просто прочитав файл и сохранив его в переменной, затем связать эту переменную в словаре и вернуться с помощью Httpresponse или render.

def read_file(request):
    f = open('path/my_file.txt', 'r')
    file_content = f.read()
    f.close()
    context = {'file_content': file_content}
    return render(request, "index.html", context) or return HttpResponse(file_content, 
    content_type="text/plain")

Если вы хотите передать содержимое текстового файла в шаблон. html добавьте его в переменную контекста и получите доступ к нему в шаблоне с помощью {{file_content}}.

...