2011-03-11 81 views
1

我正在使用Flask在我的工作中为内部应用程序编写Web服务。许多Web服务URI都返回HTML partials,并且我试图找出一种干净的方式来存储html模板字符串。我不想将模板字符串放在单独的文件中,因为它们通常只有几行,我不想有20个模板文件,每个文件中都有3行。我正在考虑在函数的文档字符串中定义一个函数的html模板字符串,因为我觉得这样可以达到多种目的。它将用作文档,基本上说“这是我输出的内容”,以及使我不必将3行模板字符串存储在单独的文件中。这里是我正在谈论的:在docstrings中存储html模板?

@app.route('/path/to/my/resource/<int:_id>') 
def some_resource(_id): 
    """ 
    <select id="resource-{{ resource.id }}" class="resource"> 
     {% for choice in choices %} 
     <option id="choice-{{ choice.id }}" value="{{ choice.id }}"> 
      {{ choice.text }} 
     </option> 
     {% endfor %} 
    </select> 
    """ 

    # retrieving resource, etc... 

    return render_template_string(some_resource.__doc__, **kwargs) 

我不知道这是否会是一场噩梦维持与否......任何想法?

回答

4

我认为这是一个糟糕的计划。

Docstrings用于文档,模板不是文档。文档应该描述该功能的用途。 HTML模板是一个不好的替代品。

你可以使用多行字符串来保存你的模板,这可能是一个好主意。通过制作文档,你不会获得任何收益。

+2

坏计划。同意只有'template =“”“