Скажем, я использую return render_template('index.html', users=users)
. Можно ли получить имя файла внутри шаблона без явной отправки его внутри представления?Как получить имя файла текущего шаблона внутри шаблона Jinja2?
ответ
Если все, что вам нужно, это базовое имя, вы можете использовать {{ self }}
, который вернет строку возврата, содержащую базовое имя шаблона, например <TemplateReference 'view.html'>
. Вы можете разобрать это с фильтром, например, {{ self | quoted }}
@app.template_filter('quoted')
def quoted(s):
l = re.findall('\'([^\']*)\'', str(s))
if l:
return l[0]
return None
Если вам нужен полный путь, например, «/full/path/to/view.html» вы можете создать подкласс шаблона.
Не работает. Когда я попробую ваше решение, эта ошибка возникает: TemplateAssertionError: нет фильтра с именем 'quoted' – renatov
@renatov: Где у вас есть @ app.template_filter ('quoted')? Правильно ли фильтр зарегистрирован в приложении Flask? – PartialOrder
Хотя недокументированный, {{ self._TemplateReference__context.name }}
предоставит имя шаблона. И есть несколько интересных свойств, которые можно использовать после self._TemplateReference__context
.
Вы можете, например, добавить к вашей верхней шаблон базы:
<meta name="template" content="{{ self._TemplateReference__context.name }}">
Так что, глядя на исходный код страницы поможет вам быстро найти соответствующий файл шаблона. Если вы не хотите раскрывать эту информацию, сделайте ее условной для среды тестирования.
- 1. ZF2 получить имя шаблона
- 2. Jinja2 api: как получить унаследованный шаблон шаблона?
- 3. Получить текущее имя шаблона?
- 4. Использовать имя шаблона ejs внутри самого шаблона
- 5. Многоуровневое наследование шаблона шаблона в Jinja2?
- 6. Как повторить части шаблона Jinja2
- 7. получить имя шаблона класса
- 8. Распечатать последнюю модификацию шаблона jinja2 в pelican
- 9. Получить имя шаблона - Smarty
- 10. Получить полное имя шаблона шаблона шаблона с использованием libtooling
- 11. autoescape jinja2 значения шаблона python
- 12. Как получить текущего пользователя в теге шаблона?
- 13. Как получить родительский шаблонный экземпляр (текущего шаблона)
- 14. Django - Jinja2 кэширование переменных шаблона
- 15. saltstack jinja2 вложенное наследование шаблона
- 16. название C++ тип текущего внутри шаблона
- 17. Недопустимый синтаксис Значение шаблона jinja2
- 18. Как получить имя файла текущего файла javascript?
- 19. Вызов шаблона внутри шаблона angularjs
- 20. Как я могу модулировать логику шаблона jinja2?
- 21. Как определить, пуст ли шаблон шаблона Jinja2?
- 22. Получить имя родительского шаблона Wordpress
- 23. шаблона функции внутри шаблона класса
- 24. Доступ к метаданным ячейки из шаблона jinja2
- 25. Задать аргумент шаблона шаблона шаблона конструктора внутри шаблона класса
- 26. Сплит fillePath и имя файла с использованием шаблона и шаблона
- 27. Smarty: Как получить имя загруженного файла шаблона в плагин smarty
- 28. Получить шаблон шаблона внутри документа Word, созданного из шаблона
- 29. Как определить переменную внутри файла шаблона smarty?
- 30. Кодировка JSON внутри шаблона флакона
просто интересно: что вы пытаетесь сделать? (заинтересован в ответе) –
I second @JeffTratner. Что ты хочешь делать? – Apalala
Я хочу добавить класс в тело в зависимости от имени файла. Например, если это шаблон «user-details.html», я хочу добавить соответствующий класс
для правильного управления им через javascript. –