当前位置: 首页 > 面试题库 >

如何在Jinja2模板中包含HTML文件?

毛弘博
2023-03-14
问题内容

我正在为使用Jinja模板的服务器使用Flask微框架。

我有一个家长template.html和孩子们的一些所谓的模板child1.htmlchild2.html,这些孩子有的模板是相当大的HTML文件,我想以某种分裂他们超过我的工作更好的洞察力。

我的main.py脚本内容:

from flask import Flask, request, render_template

app = Flask(__name__)

@app.route('/')
@app.route('/<task>')
def home(task=''):
  return render_template('child1.html', task=task)

app.run()

The magic is in template.html

<!DOCTYPE html>
<html>
  <head></head>
  <body>
    <div class="container">
      {% block content %}{% endblock %}
    </div>
  </body>
</html>

魔力在于child1.html:

{% extends 'template.html' %}
{% block content %}
  {% if task == 'content1' %}
    <!-- include content1.html -->
  {% endif %}
  {% if task == 'content2' %}
    <!-- include content2.html -->
  {% endif %}
{% endblock %}

而不是评论:

<!-- include content1.html -->

我有很多html文本,很难跟踪更改并且不犯一些错误,因此很难查找和纠正。

我只想加载content1.html而不是全部写入child1.html

我遇到了这个问题,但是在实施时遇到了问题。

我认为Jinja2可能有一个更好的工具。

注意:上面的代码可能无法正常工作,我只是编写它来解决问题。


问题答案:

使用jinja2 {% include %}指令。

{% extends 'template.html' %}
{% block content %}
    {% if task == 'content1' %}
        {% include 'content1.html' %}
    {% endif %}
    {% if task == 'content2' %}
        {% include 'content2.html' %}
    {% endif %}
{% endblock %}

这将包括来自正确内容文件的内容。



 类似资料:
  • 问题内容: 我是Django的新手,我正尝试通过一个正在开发的简单项目“ dubliners”和一个名为“ book”的应用程序来学习它。目录结构是这样的: 我有一个JPG文件,需要在每个网页的页眉中显示。我应该在哪里存储文件?我应该使用哪个路径来使用模板显示标签?我已经尝试过各种位置和路径,但到目前为止没有任何效果。 … 感谢您在下面发布答案。但是,我尝试了图像的相对路径和绝对路径,但仍然在网页

  • 在angular 2中,我需要创建一个包含冗余部分的大型html模板。因此,我想创建多个html模板,并通过将它们包含在主html文件中(如angular1中的ng include)将它们放在一起 但是如何在主模板中包含子模板? 例如: - -

  • 问题内容: 我最近开始学习Go。我有一个像网络应用程序这样的示例。我有: 我无法加载本地。当我写的时候它被加载了。如何加载本地js文件?我不擅长使用Go编写代码,也没有编写完整的代码。因此,请尝试解释非常简单。提前致谢! 问题答案: 您需要a 或a 来在请求时将文件内容()发送到Web浏览器。 您有3种选择: 手动执行 这是更复杂的解决方案。就像在处理程序函数中,您读取文件的内容,设置适当的响应内

  • 问题内容: 我从Flask的Jinja2模板提供动态页面。现在,我在脚本标签内定义客户端模板,例如Jinja2克隆Nunjucks。问题是,客户端模板具有类似语法该Flask’s的 Jinja2的解释,而不是可以解释渲染的逐字。 如何使整个脚本块逐字呈现? 问题答案: 你可以禁用块内标签的解释:

  • 本文向大家介绍如何在HTML文档中包含Modernizr?,包括了如何在HTML文档中包含Modernizr?的使用技巧和注意事项,需要的朋友参考一下 Modernizr提供了一种检测任何新功能的简便方法,因此您可以采取相应的措施。例如,如果浏览器不支持视频功能,那么您想显示一个简单的页面。 您可以根据功能的可用性创建CSS规则,如果浏览器不支持新功能,这些规则将自动应用于网页。 您可以从Mode

  • 问题内容: 我该如何放置此python脚本: 在html文件中? 问题答案: 像这样的东西,如果要创建一个html,不一定要显示它: