Mako模板绑定Morepath
项目描述
# more.mako
`more.mako` 是 [Morepath](http://morepath.readthedocs.io) 的扩展,当您使用 `.mako` 扩展名时,它为 [Mako](http://makotemplates.org) 添加了模板支持。
示例用法
```python
from more.mako import MakoApp
class App(MakoApp)
pass
@App.path(path='persons/{name}')
class Person(object)
def __init__(self, name)
self.name = name
@App.template_directory()
def get_template_directory()
return 'templates'
@App.html(model=Person, template='person.mako')
def person_default(self, request)
return {'name': self.name}
然后在`templates`子目录中的`person.mako`中
```
```html
<html>
<body>
<p>Hello {{name}}!</p>
</body>
</html>
</html>
```
您还可以使用特殊语法 `template#defname.mako` 从模板渲染defs,如下面的示例所示
`template#defname.mako`,如下例所示
from more.mako import MakoApp
@App.html(model=Root, template='defs#hello.mako')
def hello()
return {'name': 'World'}
```
然后在`defs.mako`中
<html>
<%def name="hello(name)">
<p>你好 ${name}!</p>
</%def>
```
请注意,Mako 文档使用的是 `.html` 扩展名来
表示 Mako 模板,而此扩展名使用 `.mako`。
要控制 Mako 的行为,你可以在你的应用中定义一个 `mako` 设置部分
,例如
from more.mako import MakoApp
@App.setting_section(section='mako')
def get_setting_section()
return {
'default_filters': ['h'],
'format_exceptions': True
}
```
有关 Mako 配置选项的详细信息,请参阅 [Mako API
文档](http://docs.makotemplates.org/en/latest/usage.html#api-reference)。
变更记录
0.1.0 (2016-09-08)
------------------
- 首次公开发布
`more.mako` 是 [Morepath](http://morepath.readthedocs.io) 的扩展,当您使用 `.mako` 扩展名时,它为 [Mako](http://makotemplates.org) 添加了模板支持。
示例用法
```python
from more.mako import MakoApp
class App(MakoApp)
pass
@App.path(path='persons/{name}')
class Person(object)
def __init__(self, name)
self.name = name
@App.template_directory()
def get_template_directory()
return 'templates'
@App.html(model=Person, template='person.mako')
def person_default(self, request)
return {'name': self.name}
然后在`templates`子目录中的`person.mako`中
```
```html
<html>
<body>
<p>Hello {{name}}!</p>
</body>
</html>
</html>
```
您还可以使用特殊语法 `template#defname.mako` 从模板渲染defs,如下面的示例所示
`template#defname.mako`,如下例所示
from more.mako import MakoApp
@App.html(model=Root, template='defs#hello.mako')
def hello()
return {'name': 'World'}
```
然后在`defs.mako`中
<html>
<%def name="hello(name)">
<p>你好 ${name}!</p>
</%def>
```
请注意,Mako 文档使用的是 `.html` 扩展名来
表示 Mako 模板,而此扩展名使用 `.mako`。
要控制 Mako 的行为,你可以在你的应用中定义一个 `mako` 设置部分
,例如
from more.mako import MakoApp
@App.setting_section(section='mako')
def get_setting_section()
return {
'default_filters': ['h'],
'format_exceptions': True
}
```
有关 Mako 配置选项的详细信息,请参阅 [Mako API
文档](http://docs.makotemplates.org/en/latest/usage.html#api-reference)。
变更记录
0.1.0 (2016-09-08)
------------------
- 首次公开发布