Python 如何使用瓶子&x27;创建宏;的SimpleTemplate引擎,它将在多个模板中提供?

Python 如何使用瓶子&x27;创建宏;的SimpleTemplate引擎,它将在多个模板中提供?,python,templates,bottle,Python,Templates,Bottle,我需要在瓶子应用程序的某些位置设置链接的格式。以前所有链接都在一个SimpleTemplate文件中,我定义了一个宏,如下所示: %def mylink(obj): <a class="mylink" href="{{ get_url('view', id=obj.id) }}">{{ obj.title }}</a> %end 现在我需要在几个模板中使用这种链接的格式。我将模板定义移动到一个名为macros.html的单独文件中,然后尝试将该文件包含到需要宏的

我需要在瓶子应用程序的某些位置设置链接的格式。以前所有链接都在一个SimpleTemplate文件中,我定义了一个宏,如下所示:

%def mylink(obj):
    <a class="mylink" href="{{ get_url('view', id=obj.id) }}">{{ obj.title }}</a>
%end
现在我需要在几个模板中使用这种链接的格式。我将模板定义移动到一个名为
macros.html
的单独文件中,然后尝试将该文件包含到需要宏的模板中:

<!-- macros.html -->
%def mylink(obj):
    <a class="mylink" href="{{ get_url('view', id=obj.id) }}">{{ obj.title }}</a>
%end

<!-- somepage.html -->
%include macros
...
%mylink(some_obj)
...
然而,我不愿意这样做,因为我觉得这不是很快(我在任何给定页面上都有许多指向格式的链接)


我是否缺少一些其他选项?

包含的
%include
语句立即呈现包含的模板

Myby您可以使用
%rebase
命令解决此问题,将宏放入基本模板中

<!-- macros.html -->
%def mylink(obj):
    <a class="mylink" href="{{ get_url('view', id=obj.id) }}">{{ obj.title }}</a>
%end

<!-- somepage.html -->
%include macros
...
%mylink(some_obj)
...
<!-- mylink.html -->
<a class="mylink" href="{{ get_url('view', id=obj.id) }}">{{ obj.title }}</a>

<!-- somepage.html -->
...
%include mylink obj=some_obj
...