pyList

bottle 使用内嵌模板的rebase 功能

在官方文档上关于bottle 使用内嵌模板的rebase 功能示例如下:

html code: Page code

% rebase('base.tpl', title='Page Title')
Page Content ...{{title}}

html code: base.tpl

<html>
<head>
  <title>{{title or 'No title'}}</title>
</head>
<body>
  {{base}}
</body>
</html>

python code: views code

@route('/')
@route('/hello/')
def hello(name='World'):
    return template('page.html', title=name)

这样使用会出现下面的错误:

plain code: 500 Internal Server Error
globals()['_rebase']=(u"title='Page", dict(Title')))
                                                       ^
SyntaxError: EOL while scanning string literal

GG一下,找到了可以使用的办法

html code: layout.tpl

<html>
<head>
  <title>{{title or 'No title'}}</title>
</head>
<body>
  %include
</body>
</html>

plain code: content.tpl

This is the page content: {{content}}
%rebase layout title='Content Title'

plain code: content.tpl rebase 也可以放在上面

%rebase layout title='Content Title'
This is the page content: {{content}}

python code: render content.tpl

print template('content', content='Hello World!')

参考资料 http://bottlepy.org/docs/0.11/stpl.html

本文网址: https://pylist.com/t/1379729947 (转载注明出处)
如果你有任何建议或疑问可以在下面 留言
Be the first to comment!
Captcha image
Relative Articles