文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
使用 Jinja2 子模板
我设计的个人主页,使用头像和文字组合的方式来展示了用户动态。 现在我想在主页也使用类似的风格来布局。 我可以复制/粘贴来处理用户动态渲染的模板部分,但这实际上并不理想,因为之后如果我想要对此布局进行更改,我将不得不记住要更新两个模板。
取而代之,我要创建一个只渲染一条用户动态的子模板,然后在 user.html 和 index.html 模板中引用它。 首先,我要创建这个只有一条用户动态 HTML 元素的子模板。 我将其命名为 app/templates/_post.html , _
前缀只是一个命名约定,可以帮助我识别哪些模板文件是子模板。
<table>
<tr valign="top">
<td><img src="{{ post.author.avatar(36) }}"></td>
<td>{{ post.author.username }} says:<br>{{ post.body }}</td>
</tr>
</table>
我在 user.html 模板中使用了 Jinja2 的 include
语句来调用该子模板:
{% extends "base.html" %}
{% block content %}
<table>
<tr valign="top">
<td><img src="{{ user.avatar(128) }}"></td>
<td><h1>User: {{ user.username }}</h1></td>
</tr>
</table>
<hr>
{% for post in posts %}
{% include '_post.html' %}
{% endfor %}
{% endblock %}
应用的主页还没有完善,所以现在我不打算在其中添加这个功能。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论