【发布时间】: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