说我使用return render_template('index.html', users=users)
。是否可以在模板中获取文件名,而不必在视图内部明确发送它?如何获取Jinja2模板中当前模板的文件名?
回答
如果您只需要基本名称,则可以使用{{ self }}
,它将返回一个包含模板基本名称的repr字符串,例如<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. 在sphinx jinja2模板中,获取当前文档的路径
- 2. 如何获取当前执行的模板文件名?
- 3. jinja2从模板加载模板文件
- 4. 如何获取(当前模板的)父模板实例
- 5. 如何从Jinja2模板对象获取模板源
- 6. 获取当前模板名称?
- 7. Smarty获取当前模板文件名/行
- 8. Mako模板:如何找到当前模板包含的模板的名称?
- 9. ReSharper的文件模板 - 提取当前文件名
- 10. 在模板中获取当前URL kwargs?
- 11. Meteor.js:如何从模板中获取模板的名称?
- 12. 如何调试Jinja2模板?
- 13. 如何获取当前项目模板名称?
- 14. 在Jinja2模板中包含html文件
- 15. 如何获取Jinja2模板中的参数列表
- 16. 如何获取模板内的模板名称
- 17. 如何获取模板模板参数的模板参数?
- 18. Jinja2模板继承
- 19. 在Jinja2中命名为Twap模板宏
- 20. 如何在magento-1.9的模板文件中获取当前类别的图像?
- 21. 如何获取GAE模板中当前页面的网址
- 22. 如何获取Django模板中的当前URL?
- 23. 如何获取模板中当前URL的本地化版本?
- 24. 如何在Jinja2模板中解码&#
- 25. XSLT当前模板模式?
- 26. 获取模板名称 - Smarty
- 27. 如何从Rails中的布局模板获取当前视图名称?
- 28. Jinja2的模板 - for循环
- 29. 利用{在Jinja2的模板%
- 30. 如何获取Joomla 1.5当前模板的路径?
只是想知道:你想做什么? (感兴趣的回答) –
我第二@JeffTratner。您想做什么? – Apalala
我想根据文件名添加一个类到主体。例如,如果它是“user-details.html”模板,我想添加一个相应的类
来通过javascript来正确管理它。 –