我正在做一个瓶的应用。 我有一个登录区域,一个博客面积。 如果我想获得用户的登录,我会呈现登录模板。 但是,这并不渲染必须显示登录区域下方的博客模板。 :/
我会尽量说得清楚:
{% block login %} {% endblock %}
blah blah
{% block blog_display %} {% endblock %}
现在我有一个login.html
延伸这一点,并进入登录块。 我有一个blogs.html
其进入blog_display
。 如何我都呈现? 当我做render_template()
我可以调用它只有一个login.html
或blogs.html
。
请帮助我。 如果你问吧,我会提供更多的细节。
你可能会考虑布局错误的方式。 您的布局是最通用的范本中,不是最复杂的一个。 如果你需要的功能,小自足片然后把它们写出来只是因为他们是和include
他们需要的地方。
也就是说,如果你想是这样的:
----------------------------------
+--------------+
Header | Login |
+--------------+
----------------------------------
Body Content (Blog)
你也想拥有这样一个独立的登录页面:
----------------------------------
Header
----------------------------------
+--------------+
| Login |
+--------------+
然后创建一个登录部分和include
它在你需要它。
例
模板/分音/的login.html
<form action="/login" method="post">
<!-- Your login goes here -->
</form>
模板/ your_base.html
<!DOCTYPE html>
<html>
<head>
{% block head %}
{#
Default HEAD content goes here
with extra nested blocks for children to override
if needed.
#}
{% endblock head %}
</head>
<body>
<header>{% block header %}{% endblock header %}</header>
{# Note: This assumes we *always* want a header #}
{% block content %}{% endblock content %}
</body>
</html>
模板/ login.html的
{% extends "your_base.html" -%}
{% block content -%}
{% include "partials/login.html" %}
{%- endblock content %}
模板/ blog.html
{% extends "your_base.html" -%}
{% block header -%}
{{ super() }}{# Render the default header contents here #}
{% include "partials/login.html" %}
{%- endblock header %}
{% block content -%}
{# Render your blog posts here #}
{%- endblock content %}
肖恩的答案做工不错,但如果你不希望延长块,你可以拿起一个简单的解决方案,这是我喜欢更多。
{% include "partials/login.html" %}
只要使用任何你需要包括模板