1

私のサービスを使用するプログラマーにフィードバックを提供できるようにするには、テンプレートのコンテキストで必要な変数のリストを取得する必要があります。

どうやってやるの ?

テンプレートが変数にアクセスしようとしたときに変数を作成するコンテキストオブジェクトを提供し、レンダリング後にコンテキストオブジェクト内の変数のリストを提供することを考えていました。

それは可能ですか?

4

2 に答える 2

7

テンプレートを解析すると、すべての変数を見つけることができます: http://jinja.pocoo.org/docs/api/#the-meta-api 例が含まれています。

于 2013-01-15T16:26:27.527 に答える
6

jinja2メタ APIを使用する

from jinja2 import Environment, FileSystemLoader,meta

PATH = os.path.dirname(os.path.abspath(__file__)) #get the path of current file
TEMPLATE_ENVIRONMENT = Environment(
                autoescape=False,
                loader=FileSystemLoader(os.path.join(PATH)),
                trim_blocks=False)
template_source =TEMPLATE_ENVIRONMENT.loader.get_source(TEMPLATE_ENVIRONMENT,   template_filename)[0] #replace template_filename with your template file relative to current file
parsed_content = TEMPLATE_ENVIRONMENT.parse(template_source)
variables= meta.find_undeclared_variables(parsed_content)
print variables

output : 使用される変数のセット

set(['CONFIG_PARAM_HTTPS_PROXY_PORT', 'CONFIG_PARAM_HTTP_PROXY_PORT'])
于 2015-07-01T09:05:48.960 に答える