私のサービスを使用するプログラマーにフィードバックを提供できるようにするには、テンプレートのコンテキストで必要な変数のリストを取得する必要があります。
どうやってやるの ?
テンプレートが変数にアクセスしようとしたときに変数を作成するコンテキストオブジェクトを提供し、レンダリング後にコンテキストオブジェクト内の変数のリストを提供することを考えていました。
それは可能ですか?
テンプレートを解析すると、すべての変数を見つけることができます: http://jinja.pocoo.org/docs/api/#the-meta-api 例が含まれています。
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'])