webpy:如何覆盖基本模板的内容?

时间:2011-01-04 17:04:17

标签: python templates override web.py

我正在使用带有基本模板的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 个答案:

答案 0 :(得分:5)

比我更容易:

您可以在模板中创建变量:

在page.html中,您可以定义变量

$var title = 'specific title'

在基本模板layout.html中,您可以调用varable:

$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>

我希望这个答案对其他人也有用。