从bottle.template切换到mako

时间:2014-02-24 16:58:34

标签: python mongodb pymongo bottle mako

因为我需要在tpl文件中定义一个函数,所以我需要从瓶子切换。

我的问题是双重的:

  1. 一般情况下,我现有的tpls是否仍然可用?
  2. 如何在server.py中更改回报?
  3. 以下是现有代码:

    @bottle.route('/showDevice')
    def device_view():
        device_id = bottle.request.query.id
        result = lib.crud_ops.find_by_id(collection, device_id)
        return bottle.template('device_view.tpl', {'device':result})
    

    我尝试过添加一些内容:

     myTemplate = Template(filename='device_view.tpl')
     myTemplate.render(device=result)
    

    但是Mako不知道我的'device_view.tpl'文件在哪里,我不确定'device'是否作为字典传入。

2 个答案:

答案 0 :(得分:1)

您可以定义模板中使用的功能,即使是瓶子SimpleTemplate

也是如此
def func():
  ...

def device_view():
  return bottle.template('device_view.tpl', {'device':result, 'func':func})

{{func(data)}}

答案 1 :(得分:0)

我接受了presveva的答案,但我想补充说我能够在瓶子中使用功能。我只需要从旧版本的瓶子-0.10更新到瓶子-0.12。

我这样称呼它:

%variable_name = py_package_name.python_file.function_name(input_variable)