pyList

bottle 使用内嵌模板的rebase 功能

bottle 使用内嵌模板的使用也容易上手,在官方文档上关于 bottle 使用内嵌模板的rebase 功能示例如下

bottle 模板rebase

html 代码: Page code

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

html 代码: base.tpl

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

python 代码: 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

遇到这个问题可以使用下面的办法来解决:

html 代码: layout.tpl

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

文本文件: content.tpl

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

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

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

python 代码: render content.tpl

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

bottle 内嵌的模版功能也比较灵活,一般使用也足够。如果要更强大的模版功能,就要使用第三方的模版了,如最快的Python 模版 pyTenjin 等。

本文标签: bottle rebase 内嵌 模板 功能
本文网址: https://pylist.com/t/1379729947 (转载注明出处)
如果你有任何建议或疑问可以在下面 留言
发表第一条评论!
验证码图片
相关推荐