Проверьте, существует ли файл на сервере

#python #html #jinja2

Вопрос:

У меня есть таблица в html-шаблоне jinja, и для некоторых записей существуют PDF-файлы, связанные с этими записями. Я хочу проверить, существует ли PDF-файл, и если да, <a> то следует создать тег. Я пробовал это, но не могу заставить это работать:

в app.py :

 @app.context_processor
def handle_context():
    return dict(os=os)
 

в overview.html :

 {% if os.path.exists(url_for('static', filename='PDFs/'~item.number~'_Evaluation.pdf')) %}
    <a href="{{ url_for('static', filename='PDFs/'~item.number~'_Evaluation.pdf') }}">if</a>
{% else %}
    <a href="{{ url_for('static', filename='PDFs/'~item.number~'_Evaluation.pdf') }}">else</a>
{% endif %}
 

Возвращается os.path.exists False , потому что таблица заполнена <a>else</a> .
Когда я нажимаю <a>else</a> на файл, он открывается, поэтому URL-адрес должен быть правильным.

Кто-нибудь может заметить мою ошибку? Заранее спасибо!

Комментарии:

1. Эмпирическое правило: логика принадлежит представлению, а не шаблону. Проверьте наличие файлов в представлении и передайте в шаблон результат (т. е. в этом случае путь к файлу)