我确定我做错了。
{% block content %}
<h1>Sign In</h1>
<form action="" method="post" novalidate>
{{ form.hidden_tag() }}
<p>
{{ form.username.label }}<br>
{{ form.username(size=32) }}
</p>
<p>
{{ form.password.label }}<br>
{{ form.password(size=32) }}
</p>
<p>{{ form.remember_me() }} {{ form.remember_me.label }}</p>
<p>{{ form.submit() }}</p>
</form>
{% endblock %}
{% extends "base.html" %}
上面的代码给出以下输出:
这是正确的。但是当我将相同的代码更改为如下代码:
{% extends "base.html" %}
{% block content %}
<h1>Sign In</h1>
<form action="" method="post" novalidate>
{{ form.hidden_tag() }}
<p>
{{ form.username.label }}<br>
{{ form.username(size=32) }}
</p>
<p>
{{ form.password.label }}<br>
{{ form.password(size=32) }}
</p>
<p>{{ form.remember_me() }} {{ form.remember_me.label }}</p>
<p>{{ form.submit() }}</p>
</form>
{% endblock %}
输出变为:
我的base.html看起来像这样:
<div>
<a href="/index">Home</a>
<a href="/login">Login</a>
</div>
我敢肯定,我犯了一些愚蠢的错误,但似乎找不到。
如果我在代码之上从base.html复制代码,它将正确呈现。
希望有人可以提供帮助。
答案 0 :(得分:1)
您需要在const formdata = [
{name: "gender", value: "F", focus: 0, type: "radio"},
{name: "firstname", value: "empty", focus: 0, type: "input"},
{name: "lastname", value: "empty", focus: 0, type: "input"},
{name: "birthday", value: "empty", focus: 0, type: "input"},
{name: "street", value: "empty", focus: 0, type: "input"},
{name: "streetNo", value: "empty", focus: 0, type: "input"},
]
let res = formdata.map(({name,value,focus,type}) => `${name}.${type}|${value}|${focus}`).join(';')
console.log(res)
base.html
您的<div>
<a href="/index">Home</a>
<a href="/login">Login</a>
{% block content %}{%endblock%}
</div>
中应包含用于您网站中各种内容块的块。
当您创建新页面并想要覆盖该内容或将内容添加到这些块时,您将像执行此操作一样扩展。
base.html
您可以在{% extends "base.html" %}
{% block content %}
Your content goes here
{% endblock %}
中包含多个块,然后在需要时覆盖它们。
Jinja documentation
您可以将内容放入基本html的内容块中,然后添加到该内容中,而无需使用base.html
函数覆盖它。
super()
上面对于脚本文件可能很方便。如果您有一些需要在整个站点范围内使用,而有些则仅在特定页面上。