首页 > 解决方案 > jinja flask通过python方法渲染侧边栏菜单

问题描述

我在烧瓶/神社上有一个与 base 一起使用的主要布局模板。

我需要通过调用 python 函数在这个 layout.html 中插入动态菜单内容。

可以用 jinha/flask 做吗?

这是我的 layout.html

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
  <meta name="description" content="">
  <meta name="author" content="">
  <title>Simple Sidebar</title>
</head>
<body>
  <div class="d-flex" id="wrapper">
    <!-- Sidebar -->
    <div class="bg-light border-right" id="sidebar-wrapper">
        <div class="sidebar-heading">Start Bootstrap </div>
        <div class="list-group list-group-flush">
            {% block sidebar_content %}
            ------HERE-------
            {% endblock sidebar_content %}
        </div>
      </div>
   </div>
</body>
</html>

这是我的 sidebar.html,其中 jinja 通过 sidebar_content 标签注入;


 <div class="list-group list-group-flush">
{% block sidebar_content %}

{% endblock sidebar_content %}
</div>

蟒蛇方法:

def render_sidedbar():
    sidebar = """
      <a href="#" class="list-group-item list-group-item-action bg-light">Overview</a>
      <a href="#" class="list-group-item list-group-item-action bg-light">Events</a>
      <a href="#" class="list-group-item list-group-item-action bg-light">Profile</a>
       """

    return sidebar

可以帮我?谢谢

标签: python-3.xjinja2

解决方案


您可能想要使用 jinja2 宏,这里的文档

您可以通过这种方式动态地创建功能。编写它们可能会很痛苦,但它们非常可以充当简单的 Web 组件。

如果您需要在页面呈现后注入它,您可能需要使用 javascript 实现和 api。


推荐阅读