私が使用するとしますreturn render_template('index.html', users=users)
。ビュー内でファイル名を明示的に送信せずに、テンプレート内でファイル名を取得することは可能ですか?
9940 次
2 に答える
20
文書化されていませんが{{ self._TemplateReference__context.name }}
、テンプレート名が付けられます。の後に使用できる興味深い属性がいくつかありますself._TemplateReference__context
。
たとえば、これを最上位の基本テンプレートに追加できます。
<meta name="template" content="{{ self._TemplateReference__context.name }}">
そのため、ページのソースを見ると、関連するテンプレート ファイルをすばやく見つけることができます。この種の情報を公開したくない場合は、テスト環境に対して条件付きにします。
于 2016-10-31T16:58:35.397 に答える
8
ベース名だけが必要な場合は、{{ self }}
which を使用して、テンプレートのベース名を含む repr 文字列を返すことができます (例: <TemplateReference 'view.html'>
. これをフィルターで解析できます。{{ self | quoted }}
@app.template_filter('quoted')
def quoted(s):
l = re.findall('\'([^\']*)\'', str(s))
if l:
return l[0]
return None
'/full/path/to/view.html' などのフル パスが必要な場合は、Template をサブクラス化することをお勧めします。
于 2012-09-06T14:58:33.543 に答える