webpy:如何覆盖基本模板的内容?
我正在使用webpy和一个基本的模板。
render = web.template.render(basedir + 'templates/', base='layout', globals=globals_vars_custom)
在layout.html
文件中,我有这样的内容:
$def with (content)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html>
<head>
<title>PAGE TITLE</title>
<!-- Some CSS and some javascript -->
</head>
<body>
$:content
</body>
</html>
这个基本模板在我网站的90%部分都能正常工作,但我有一个页面需要在<head>
标签里插入一些其他数据(比如一些元标签)。
我该怎么做呢?我怎么才能把<head>
放在一个结构里,这样我就可以在模板中轻松覆盖它?
谢谢!
1 个回答
5
这比我想的要简单:
你可以在模板里创建一个变量:
在 page.html 里你可以定义一个变量
$var title = 'specific title'
在基础模板 layout.html 里你可以调用这个变量:
$def with (content)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html>
<head>
<title>$content.get("title","DEFAULT TITLE")</title>
<!-- Some CSS and some javascript -->
</head>
<body>
$:content
</body>
</html>
我希望这个回答对其他人也有帮助。