1

我目前正在进行的项目需要我使用 Python 的内置 HTTP 服务器,并且我需要自己构建动态 HTML 页面。HTML 文件中的 %REPLACE_ME% 语法最近太烦人了,我很想用就地代码替换它,就像它在 PHP 中所做的那样。有没有什么好的解决方案可以用(或任何其他类似的语法)解析字符串并评估里面的代码?

编辑:

Jon Clements 指出我忘了解释为什么我需要就地代码。有两个原因 - 首先是我习惯了这种方法,后者是我想使用一些循环并且不想结束自己为模型文件中的表格构建一半的 HTML 代码。stdlib 要求是因为我想尽可能少地保持依赖关系。不过,我可以允许一些非常苗条的库。

4

2 回答 2

3

如果您使用 PHP,如果您无法执行任意代码,一开始可能会令人沮丧。

可以使用Python CGI模块来执行此操作。(但与 PHP 不同的是,它旨在通过接口而不是其他东西运行 - WSGI 是这里的方式 - 也没有太多的设置)。

现在,将程序逻辑与显示逻辑分开更为传统。这样就有“模板”从“视图”(通过响应对象返回信息)中填充信息。它通常被称为“MVC”,但并非所有“MVC”都是“MVC”。

我仍然记得 PHP 是“项目主页”的时候——它已经发展了很多,并且是一种不为 CGI 编写 C 的好方法……但是从那时起语言和技术都在进步……

于 2012-12-18T22:32:56.507 回答
2

根据最后一条评论,我将尝试概述一些选项:

内置到 python 中最好的选择是string模块。

如评论中所述,文档位于:7.1。细绳

有许多非常强大的第三方模板系统。我不是 PHP 大用户,但您会将这些分类为 Smarty 等...

Django 模板

还有一本很棒的开源书籍与使用它们有关Django Book: Chapter 4 - Templating

我从来没有在 Django 之外使用过这些,但我知道有一些框架可以让你使用它们。我不确定将它与另一个系统集成需要做多少工作,但绝对可以完成。

鲭鱼模板

这是另一个非常强大的模板系统。这被一些大型框架(如 Pylons)使用。

神社2

这也是一个很好的模板系统。

围绕模板系统还有一些其他讨论:什么是 Python 最快的模板系统?. 这只是一个示例,但那里有更大的模板系统列表。

于 2012-12-18T22:39:27.400 回答