bottle 使用内嵌模板的使用也容易上手,在官方文档上关于 bottle 使用内嵌模板的rebase 功能示例如下
html 代码: Page code
1
2
% rebase('base.tpl', title='Page Title')
Page Content ...{{title}}
html 代码: base.tpl
1
2
3
4
5
6
7
8
<html>
<head>
<title>{{title or 'No title'}}</title>
</head>
<body>
{{base}}
</body>
</html>
python 代码: views code
1
2
3
4
@route('/')
@route('/hello/')
def hello(name='World'):
return template('page.html', title=name)
这样使用会出现下面的错误:
1
2
3
4
plain code: 500 Internal Server Error
globals()['_rebase']=(u"title='Page", dict(Title')))
^
SyntaxError: EOL while scanning string literal
遇到这个问题可以使用下面的办法来解决:
html 代码: layout.tpl
1
2
3
4
5
6
7
8
<html>
<head>
<title>{{title or 'No title'}}</title>
</head>
<body>
%include
</body>
</html>
文本文件: content.tpl
1
2
This is the page content: {{content}}
%rebase layout title='Content Title'
plain 代码: content.tpl rebase 也可以放在上面
1
2
%rebase layout title='Content Title'
This is the page content: {{content}}
python 代码: render content.tpl
1
print template('content', content='Hello World!')
bottle 内嵌的模版功能也比较灵活,一般使用也足够。如果要更强大的模版功能,就要使用第三方的模版了,如最快的Python 模版 pyTenjin 等。
本文网址: https://pylist.com/topic/31.html 转摘请注明来源