代码之家  ›  专栏  ›  技术社区  ›  purecharger

Python Cheetah-指定模板的名称/值对

  •  3
  • purecharger  · 技术社区  · 15 年前

    cheetah 我相信这是我对猎豹的误解和缺乏文档的综合。

    我的目标是有一个httpd.conf文件模板文件和环境特定定义文件中的替换变量。

    httpd.tmpl公司:

    Listen $HTTP_PORT
    ...
    #if $ENABLE_HTTPS == true
    <Virtual Host *:$HTTPS_PORT>
        ...
    </VirtualHost>
    #end if
    

    生产.env:

    HTTP_PORT=34120
    HTTPS_PORT=34121
    ENABLE_HTTPS=true
    

    填充这个Cheetah模板需要什么命令行?我用过:

    cheetah f --oext conf --debug httpd

    但很明显 prod.env #include 到我的模板文件的顶部:

    #include "prod.env"
    

    Cheetah.NameMapper.NotFound: cannot find 'APACHE_PORT'
    

    无论如何,这不是理想的情况,因为我希望能够在命令行上为cheetah的每次调用指定名称/值映射文件。

    谢谢!

    编辑: 我知道我可以编写一个python脚本来执行文件读取,然后使用cheetahapi进行替换。但是,我正在寻找一种使用命令行填充模板的方法。


    解决了的

    感谢@pyfunc提供的文档链接,我现在明白了如何实现这一点。主要问题是供应 --env

    1 回复  |  直到 15 年前
        1
  •  0
  •   pyfunc    15 年前

    Cheetah将每个#include文本块包装在嵌套模板对象中。

    使用

    #include raw "prod.env"
    

    #set global $HTTP_PORT="34120"
    

    要包含不同的env文件,您也需要将其模板化。

    请看下面的例子,可以帮助你。