尝试在Flask上渲染Jinja2块时遇到问题。 我有这个:
的layout.html
<!DOCTYPE html>
<html lang="es-ES">
<head>
<meta charset="UTF-8">
<title>{% block page_title %}{% endblock %} - misitioweb.es</title>
</head>
<body>
{% block page_content %}
<h1>{% block main_title %}{% endblock %}</h1>
{% endblock %}
</body>
</html>
register.html
{% extends 'layout.html' %}
{% block page_title %}Registrarse{% endblock %}
{% block page_content %}
{{ super() }}
{% block main_title %}Registrate aquí{% endblock %}
<form action="/register/" method="post">
{{ form.username.label }}{{ form.username() }} <br>
{{ form.email.label }}{{ form.email() }} <br>
{{ form.password.label }}{{ form.password() }} <br>
{{ form.password_compare.label }}{{ form.password_compare() }} <br>
{{ form.accept_tos.label }}{{ form.accept_tos() }} <br>
{{ form.submit() }}
</form>
{% endblock %}
正如你所看到的,main_title块重复,首先是我想要的,作为H1标题,你可以在layout.html中看到,然后作为一个简单的文本,好像它只是采取块register.html。我使用super()模板在内容中保留包含标题的h1。我只需要H1。
我该如何解决这个问题?
答案 0 :(得分:1)
这可能会这样做:
{% extends 'layout.html' %}
{% block page_title %}Registrarse{% endblock %}
{% block main_title %}Registrate aquí{% endblock %}
{% block page_content %}
<form action="/register/" method="post">
{{ form.username.label }}{{ form.username() }} <br>
{{ form.email.label }}{{ form.email() }} <br>
{{ form.password.label }}{{ form.password() }} <br>
{{ form.password_compare.label }}{{ form.password_compare() }} <br>
{{ form.accept_tos.label }}{{ form.accept_tos() }} <br>
{{ form.submit() }}
</form>
{% endblock %}