【问题标题】:python flask Jinja2 implement parameters inside a MACROpython flask Jinja2 在 MACRO 中实现参数
【发布时间】:2019-05-17 21:34:39
【问题描述】:

按照this guide,我想在宏中实现我的 BACKEND 参数。

例如: 我的宏,叫infrastructure/buttons_utils.html

{% macro navigation_button_test(btn_name, placeholder) -%}
    <input  type="submit"
            class="btn btn-primary btn-lg"
            value="{{ placeholder }}"
            id="{{ btn_name }} ">
{%- endmacro %}

然后我用一个名为top_buttons_list 的列表呈现一个HTML 模板,该列表是一个字典列表。我的代码是:

{% import 'infrastructure/buttons_utils.html' as buttons_utils %}

        <div class="vmiddle_wrapper">
            {% for button in top_buttons_list %}
                {% set button_params = button.button_params %}
                    <div> PLACEHOLDER TEST: {{ button_params.placeholder }} </div>        
            <div> {{ buttons_utils.navigation_button_test(btn_name='name', placeholder="{{ button_params.placeholder }}" ) }} </div>
            {% endfor %}
        </div>

我除了我的屏幕来显示一个带有正确 PLACEHOLDER 的按钮,但该按钮实际上显示了这个字符串:"{{ button_params.placeholder }}"

这是我得到的 HTML:

【问题讨论】:

  • 我试图删除 navigation_button_test 占位符参数周围的',例如:
    {{ buttons_utils.navigation_button_test(btn_name='name', placeholder="{{ button_params.placeholder }}" ) }}
    to
    {{ buttons_utils.navigation_button_test(btn_name='name', placeholder={{ button_params.placeholder }} ) }}
    但我得到一个错误:TemplateSyntaxError: expected token ':', got '}'

标签: python html flask macros placeholder


【解决方案1】:

我会尝试执行以下操作(删除内括号应该可以解决此问题):

{{ buttons_utils.navigation_button_test(btn_name='name', placeholder=" button_params.placeholder" ) }}

Jinja 自动知道如何在内部实现对象,这就是为什么你应该只使用左括号 {{ 和右括号 }}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-12-19
    • 1970-01-01
    • 2020-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多