Bottle / SimpleTemplate - 从模板中调用python函数

时间:2018-03-14 03:23:44

标签: python bottle

我使用Bottle框架有以下python代码:

# -*- coding: utf-8 -*-

from bottle import route, request, template

def foo(number):
    return [number,number+1,number+2]

@route('/test')
def test():
        return template('test')

模板test

Lorem Ipsum
% for item in foo(2):
  <li>item</li>
% end

但我得到NameError: name 'foo' is not defined

在简单模板中是否可以调用外部python函数?

1 个答案:

答案 0 :(得分:1)

test.tpl

Lorem Ipsum
% from foo import foo
% for item in foo(2):
  <li>item</li>
% end

foo.py

def foo(number):
    return [number, number + 1, number + 2]

test.py

# -*- coding: utf-8 -*-
from bottle import route, template, run
@route('/')
def test():
    return template('test')
run(host='localhost', port=8080, debug=True)

您可以导入瓶子模板中的任何模块。在上面的示例代码中,我将函数foo移动到其他文件并导入它。

Demo