2011-03-11 38 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 =「」「