如何创建要在金字塔中使用的.pt文件

时间:2015-07-20 19:17:24

标签: pyramid

我正在关注金字塔的教程。在会话08中,我必须创建一个模板(.pt文件),如下所示:

<!DOCTYPE html>
<html lang="en">
<head>
    <title>Quick Tutorial: ${name}</title>
</head>
<body>
<h1>Hi ${name}</h1>
</body>
</html>

我使用notepad ++来制作这个文件......但它没有这个(.pt)扩展名。 所以我尝试将此文件保存为.html或.txt,当我运行此代码时:

from pyramid.view import view_config
# First view, available at http://localhost:6543/
@view_config(route_name='home', renderer='home.pt')
def home(request):
    return {'name': 'Home View'}

# /howdy
@view_config(route_name='hello', renderer='home.pt')
def hello(request):
    return {'name': 'Hello View'}

系统返回“找不到文件”.... 如何将文件另存为.pt ???

感谢您的耐心......

1 个答案:

答案 0 :(得分:1)

@ Vi3GameHkr提供了正确答案作为对问题的评论(即只需在保存文件时手动更改扩展名)。

还有另一种方式......

您可以使用html扩展名保存文件,然后将html模板与pyramid_chameleon渲染器关联。你可以这样做;

import pyramid_chameleon

def main(global_config, **settings):
    config = Configurator(settings=settings)
    config.include('pyramid_chameleon')
    config.add_renderer('.html', pyramid_chameleon.zpt.renderer_factory)

请注意,pyramid_chameleon已经将txt文件与其text.render_factory相关联(我不确定它与zpt.render_factory有何不同)。

然后,您可以将renderer='home.pt'更改为renderer='home.html'

如果您使用的是pyramid_mako,则可以执行以下操作(它类似,但pyramid_mako已添加了&#39;快捷键&#39;功能);

def main(global_config, **settings):
    config = Configurator(settings=settings)
    config.include('pyramid_mako')
    config.add_mako_renderer('.html')

pyramid_jinja2提供相同的快捷方式;

def main(global_config, **settings):
    config = Configurator(settings=settings)
    config.include('pyramid_jinja2')
    config.add_jinja2_renderer('.html')