3

我正在从 Apache/PHP/Smarty/Dreamweaver 方案切换到 Pyramid。

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

  1. 将 smarty 模板放入 html 中。
  2. 在具有相同名称的 html 后面创建 php。php 以 html 为模板。
  3. 将链接从 html 更改为 php。

仅此而已。此方案很方便,因为该站点可以在浏览器中查看,并且可以在 Dreamweaver 中进行编辑。

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

谢谢你的建议。

4

3 回答 3

3
  1. Python 没有 smarty 端口。所以你必须开始使用另一种模板语法,例如makochameleon
  2. 为此,您将设置您view_config的响应 url,并告诉它使用相应的模板。
  3. 如果你想这样做,你可以简单地改变你的代码。但这不是必需的,pyramid 会处理您的请求,无论 url 是否包含 .html、.php、.python、/ 或其他任何内容。

我猜您仍然可以在 Dreamweaver 中编辑模板。

只有真正的静态页面才会使用static_url. 如果您打算将 html 制作成模板,那么直接从模板开始可能是最简单的,其中没有任何动态内容。

这是来自URL 调度教程

# 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')
于 2012-12-07T17:52:52.630 回答
2

您可以构建一个小型 Web 应用程序,该应用程序使用遍历从目录中提供 html 文档。这里有更多关于遍历如何工作的解释。

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

这意味着您网站中的每个页面实际上都是动态的,因此无论页面是否具有动态内容,都会对每个页面产生很小的性能损失,但除非您正在构建下一个脸书。:) 但是,这种方法将允许您拥有与网站中每个页面相对应的纯 html 文档,您可以使用 Dreamweaver 或任何其他编辑器对其进行编辑。

于 2012-12-07T23:11:04.413 回答
0

这与其他答案有些不同,但这是一个完全不同的流程。

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

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

不利的一面是,让它完全工作一开始并不是那么简单。

于 2012-12-25T11:59:23.327 回答