Python 如何将StringTemplate引擎集成到CherryPy web服务器中

Python 如何将StringTemplate引擎集成到CherryPy web服务器中,python,cherrypy,stringtemplate,Python,Cherrypy,Stringtemplate,我喜欢StringTemplate引擎,我喜欢CherryPy web服务器,我知道它们可以集成 是谁干的?怎么做 编辑:TurboGears框架采用CherryPy web服务器并捆绑其他相关组件,如模板引擎、数据访问工具、JavaScript工具包等。我对MochiKit感兴趣,demand CherryPy,但我不想要StringTemplate以外的任何其他模板引擎(体系结构非常关键——我不希望再出现一个坏的/坏的模板引擎) 因此,通过解决如何将StringTemplate与TurboG

我喜欢StringTemplate引擎,我喜欢CherryPy web服务器,我知道它们可以集成

是谁干的?怎么做

编辑:TurboGears框架采用CherryPy web服务器并捆绑其他相关组件,如模板引擎、数据访问工具、JavaScript工具包等。我对MochiKit感兴趣,demand CherryPy,但我不想要StringTemplate以外的任何其他模板引擎(体系结构非常关键——我不希望再出现一个坏的/坏的模板引擎)

因此,通过解决如何将StringTemplate与TurboGears集成来回答这个问题是可以接受的

通过解决如何在Google应用程序引擎中使用CherryPy和StringTemplate来回答这个问题也是可以接受的

谢谢。

罗布


人们选择工具是有原因的。StringTemplate在Python中不太流行,有一些模板引擎支持得更好,受众范围更广。如果你不喜欢Kid,还有Django的模板、Jinja、Cheetah和其他工具。也许你可以在其中一个工具中找到你非常喜欢的特性StringTemplate和从此过上幸福的生活。

基于这两个教程,它看起来非常简单:

import stringtemplate import cherrypy class HelloWorld(object): def index(self): hello = stringtemplate.StringTemplate("Hello, $name$") hello["name"] = "World" return str(hello) index.exposed = True cherrypy.quickstart(HelloWorld()) 导入字符串模板 进口樱桃 类HelloWorld(对象): def索引(自): hello=stringtemplate.stringtemplate(“hello,$name$”) 你好[“名称”]=“世界” 返回str(你好) index.exposed=True cherrypy.quickstart(HelloWorld()) 您可能想让CherryPy函数在磁盘上的某个位置找到StringTemplate,但总体思路是这样的


Django在概念上是相似的:url被映射到python函数,python函数通常会构建一个上下文字典,用该上下文对象呈现一个模板,然后返回结果。

不知道确切的答案,但我建议您看看TurboGears框架。它将cherrypy与kid模板集成在一起引擎。人们因为选择坏X而臭名昭著,包括模板引擎,所以我对人气竞赛不感兴趣。我想要一个好的模板引擎,这意味着强制执行MVC式的分离,它只有一个选项:StringTemplate。没有其他人会费事。+1取消否决票。StringTemplate有一个笨拙的if-then语句循环完全没有…变量没有属性访问…如果它们算作程序逻辑,那肯定有点苛刻?Eli:你注意到“选择工具是有原因的。”然而,我从你的论点中推断出的原因似乎是由Rob不同意的担忧所引导的。StringTemplate的设计师Terence Parr将文本操纵作为他毕生的工作(字面上)。我鼓励你阅读解释ST哲学的论文:“生成结构化文本的函数式语言”(Functional Language For Generating Structured text)和“在模板引擎中强制严格的模型-视图分离”()就像Python的空格一样,我曾经认为他的想法是疯狂的……Nikhil:See.ST允许引用模板名称空间中对象的属性,例如,循环的形式是映射()-类似于多值属性(列表、dict等)上的函数迭代)例如,我也不同意你关于“笨拙的if-then语句”的说法。这看起来像是一个正常的if/then模板,正如我所看到的:是的,有用户!