Django模板块:如何重用它们以及如何将HTML传递给它们?
作为一名熟悉Ruby的前端开发人员,我正在尝试学习Django模板系统 这似乎是我习惯的一个由内而外的版本。我很难理解它的相反思想:在Django中,您将模板的某些部分标记为可重写,而不是声明可重用块并在必要时包含它们 有两件事我不明白Django模板块:如何重用它们以及如何将HTML传递给它们?,django,django-templates,template-engine,Django,Django Templates,Template Engine,作为一名熟悉Ruby的前端开发人员,我正在尝试学习Django模板系统 这似乎是我习惯的一个由内而外的版本。我很难理解它的相反思想:在Django中,您将模板的某些部分标记为可重写,而不是声明可重用块并在必要时包含它们 有两件事我不明白 使用Ruby的Padrino,我将声明一个部分(模板化HTML的可重用片段),然后将其包含在多个位置。无论我在哪里调用它,它都会输出它的HTML 根据Django的说法,每个块只能在页面上使用一次:最后,请注意,不能在同一模板中定义具有相同名称的多个块标记 我
<div class="container <%= myclass %>">
<div class="container-inner">
<%= yield %>
</div>
</div>
<%= partial 'container', locals: { myclass: 'container--header' } do %>
<h1><%= Sitename %></h1>
<p>Welcome to my humble place</p>
<% end %>
结果HTML
<div class="container container--header">
<div class="container-inner">
<h1>Sitename</h1>
<p>Welcome to my humble place</p>
</div>
</div>
<div class="article">
<div class="article-wrapper">
<h1>Hello world</h1>
<p>This is my</p>
<p>Amazing article</p>
</div>
</div>
你好,世界
这是我的
精彩文章
Django有可能吗?
问题:
<% partial 'container', myclass: 'container--header', tag: 'nav' %>
我想知道如何用Django做到这一点
在您的回答中,请评论是否可以同时使用a)基本Django功能;b) 一些Django扩展
谢谢。我对帕德里诺不熟悉,所以我不能100%确定我是否了解你在找什么 然而,Django模板块肯定不是Padrino的partials的等价物。从你的描述来看,我认为应该是相同的 在大纲中,要创建自定义模板标记,请执行以下操作:
yourapp/
models.py
templatetags/
__init__.py
mytemplatetags.py
register
的变量,它是django.template.Library
的实例:
# mytemplatetags.py
from django import template
register = template.Library()
# mytemplatetags.py
from django import template
register = template.Library()