如何在金字塔中制作几乎静态的网站?

时间:2012-12-07 02:32:01

标签: python pyramid

我正在从Apache / PHP / Smarty / Dreamweaver计划切换到金字塔。

我的意思是在Apache中使用静态网站的情况,通过Dreamweaver模板或其他静态工具实现菜单。然后,如果我想在html中添加一些动态内容,我可以进行以下操作:

  1. 将智能模板放入html中。
  2. 使用相同的名称在html后面创建php。 Php以html为模板。
  3. 将链接从html更改为php。
  4. 就是这样。 此方案很方便,因为该站点可在浏览器中查看并可编辑 在Dreamweaver中。

    如何在金字塔中重现此方案? 模板和静态内容有单独的目录。加上所有这些myapp:hrefs中的静态修饰符。在哪里查找?

    感谢您的建议。

3 个答案:

答案 0 :(得分:3)

  1. Python没有聪明的端口。因此,您必须开始使用其他模板语法,例如makochameleon
  2. 要执行此操作,您需要设置view_config以回复网址,最后告诉它使用相应的模板。
  3. 如果您想这样做,您只需更改代码即可。但这不是必需的,金字塔将处理您的请求,无论网址是否包含.html,.php,.python,/等等。
  4. 我猜你仍然可以在Dreamweaver中编辑模板。

    仅使用static_url链接真正的静态页面。如果您想将html设置为模板,最简单的方法就是立即开始使用模板,而不需要任何动态内容。

    这来自URL dispatch tutorial

    # in views.py
    @view_config(route_name='view_page', renderer='templates/view.pt')
        def view_page(request): 
            return {}
    
    # in __init__.py
    config.add_route('view_page', 'mypage.html')
    

答案 1 :(得分:2)

您可以构建一个小型Web应用程序,该应用程序使用traversal从目录中提供html文档。以下是关于how traversal works的更多解释。

然后,您可以使用PageTemplateFile以编程方式将这些文档呈现为Chameleon模板。这将允许您在每个页面中包含公共页眉/页脚/导航。

这意味着您网站中的每个网页实际上都是动态的,因此无论是否有动态内容,每个页面都会造成很小的性能损失,但您不应该除非你正在构建下一个Facebook,否则请关心这个问题。 :)但是,这种方法可以让你拥有一个简单的html文档,对应于你网站上的每个页面,你可以使用Dreamweaver或任何其他编辑器进行编辑。

答案 2 :(得分:0)

这有点不同于哦,但这是一个完全不同的流程。

以html格式编写所有页面。一切!!!然后使用angularjs或knockoutjs之类的东西来添加动态内容。 Pyramid将使用ajax提供请求的动态内容。

然后你可以将所有内容映射到你的html模板......在任何你想要的地方编辑这些模板,因为它们只是html文件。

缺点是让它完全起作用并不是那么简单。