用于将模板块包裹在可重用封装模板中的Django模板标签
项目描述
django-wrapwith
用于将模板块包裹在可重用封装模板中的Django模板标签。
提供一个名为 wrapwith
的块标签,其行为与 内置的 include
标签 完全相同,但它将块的内容注入到包含的模板中。
它的目的是使包装标记可重用,鼓励您将模板分解成“组件”,这些组件可能具有特定的封装结构,但内容不同。它特别适用于提供组件(卡片、块引用、手风琴等)具有可重用结构但任意内容的系统。
一个玩具示例:想象一下,您的设计中包含一个具有彩色边框的框组件,但可以包含任何其他标记。
首先,创建一个包装模板, wrappers/box.html
<div style="border: 1px solid {{ bordercol }}">
{{ wrapped }}
</div>
注意特殊的 {{ wrapped }}
变量,它将被替换为您的包装内容。
然后,在您的首页模板中
{% load wrapwith %}
<html>
<body>
<h1>welcome to my page</h1>
{% wrapwith "wrappers/box.html" with bordercol="red" %}
<p>this is inside a red box</p>
{% endwrapwith %}
{% wrapwith "wrappers/box.html" with bordercol="green" %}
<p>this is inside a green box</p>
<p>and here's another paragraph inside the green box</p>
{% endwrapwith %}
</body>
</html>
可选:模板别名
如果您发现每次使用组件时都写出完整的模板路径太冗长,您可以在Django设置中定义一个名为 WRAPWITH_TEMPLATES
的“别名”字典。此字典可以是嵌套的。然后,您可以在模板中使用点路径访问此字典。
在您的 settings.py
WRAPWITH_TEMPLATES = {
"wrappers": {
"box": "wrappers/box.html",
},
}
在您的模板中
{% wrapwith wrappers.box with bordercol="red" %}
<p>this is inside a red box</p>
{% endwrapwith %}
在Python 3上与所有当前支持的Django版本进行了测试。
安装
pip install django-wrapwith
然后将 wrapwith
添加到您的 INSTALLED_APPS
。
行为准则
有关在贡献此存储库时的行为准则指南,请参阅 https://www.dabapps.com/open-source/code-of-conduct/
项目详情
关闭
django-wrapwith-0.0.2.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 50ef60c4333dc8c315645c13a2368f2f00c821933f4591fcbe6c2262f1ab3ca3 |
|
MD5 | ece6026592748efc78f4fdc57ba3d101 |
|
BLAKE2b-256 | 80acc3578161344437b597583be45ae71cfd6832e0965deab04dce6c584a5375 |
关闭
django_wrapwith-0.0.2-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 03ca3091b11fc5e0d0e3a11efad555e9062a0c4bf5f4f7e9aef4f857ac112b5c |
|
MD5 | 9f13f630b8a2e9a9ae167390bf6a30a4 |
|
BLAKE2b-256 | d7b578ab114e5ee854495879f888d54c4e6aa85f4b92f8e4ca3dda02422c52ee |