рдЯреЗрдореНрдкрд▓реЗрдЯ:
{% set foo = "bar" %}
foo - {{ foo }}
{% for i in range(2) %}
for:foo - {{ foo }}
{% set foo = i %}
for:foo - {{ foo }}
{% endfor %}
{{ foo }}
{% block test %}
block:foo - {{ foo }}
{% set foo = "baz" %}
block:foo - {{ foo }}
{% endblock %}
foo - {{ foo }}
рдирддреАрдЬрд╛:
foo - bar
for:foo - bar
for:foo - 0
for:foo - 0
for:foo - 1
foo - bar
block:foo - bar
block:foo - baz
foo - bar
рдбрдмреНрд▓реНрдпреВрдЯреАрдПрдл?
рдХреГрдкрдпрд╛ рд╡реИрд╢реНрд╡рд┐рдХ рдЪрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рдмрдирд╛рдПрдВред
рдХреБрдЫ рдФрд░ рд╡рд┐рд╡рд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдЪрд┐рдкрдХрд╛рдирд╛ред рдЕрдВрджрд░ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдорд╣рд╕реВрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрд░реЛрдХреНрдд рдХреЛрдб рдРрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ:
from jinja2.runtime import LoopContext, TemplateReference, Macro, Markup, TemplateRuntimeError, missing, concat, escape, markup_join, unicode_join, to_string, identity, TemplateNotFound
name = None
def root(context, environment=environment):
...
l_foo = 'bar'
context.vars['foo'] = l_foo
context.exported_vars.add('foo')
yield u'\nfoo - %s\n\n' % (
l_foo,
)
t_1 = l_foo
l_i = missing
for l_i in context.call(l_range, 2):
if 0: yield None
yield u'\n for:foo - %s\n ' % (
l_foo,
)
l_foo = l_i
yield u'\n for:foo - %s\n ' % (
l_foo,
)
l_foo = t_1
l_i = missing
yield u'\n\n'
for event in context.blocks['test'][0](context):
yield event
yield u'\n\nfoo - '
yield to_string(l_foo)
def block_test(context, environment=environment):
l_foo = context.resolve('foo')
if 0: yield None
yield u'\n block:foo - %s\n ' % (
l_foo,
)
l_foo = 'baz'
yield u'\n block:foo - %s\n' % (
l_foo,
)
blocks = {'test': block_test}
debug_info = '2=8&3=12&5=16&6=19&7=21&8=23&11=28&17=31&11=33&12=37&13=39&14=41'
рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА:
рдЧреНрд▓реЛрдмрд▓реНрд╕: http://jinja.pocoo.org/docs/api/#global -namespace
рд╕рд╛рдорд╛рдиреНрдп: http://jinja.pocoo.org/docs/templates/#assignments
рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди: http://jinja.pocoo.org/docs/api/#jinja2.runtime.Context
рдПрдХ рдФрд░ рдЕрдЪреНрдЫреА рд╡реНрдпрд╛рдЦреНрдпрд╛: http://stackoverflow.com/a/3355029/482864
рдХреЛрдИ рд╡рд┐рдЪрд╛рд░?
рдпрд╣ рдкреНрд░рд▓реЗрдЦрд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реИред
рдорд┐рддреНрд╕реБрд╣рд┐рдХреЛ,
рд╣рдореЗрдВ DriverX рдЬреИрд╕реА рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИред
рд╣рд╛рдВ, "рд╕реЗрдЯ" рдХрд╛ рдЙрдкрдпреЛрдЧ рдкреНрд░рд▓реЗрдЦрд┐рдд рд╣реИ, рд▓реЗрдХрд┐рди, рдХреНрдпрд╛ рдпрд╣ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ?
рд╣рдорд╛рд░рд╛ рдЙрджрд╛рд╣рд░рдг:
{% рд╕реЗрдЯ the_var = 'foo'%} {% рддрддреНрд╡реЛрдВ рдореЗрдВ рдИ рдХреЗ рд▓рд┐рдП%} {% рд╕реЗрдЯ the_var = 'рд╣рд╛рдБ'%} рд╡рд░: {{ the_var }} {%- рд╕рдорд╛рдкреНрддрд┐ %} the_var: {{ the_var }}
рдирддреАрдЬрд╛:
the_var: рд╣рд╛рдБ the_var: рд╣рд╛рдБ the_var: foo
рдХреНрдпрд╛ рдЖрдк рд╣рдорд╛рд░реА рдорджрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рдзрдиреНрдпрд╡рд╛рдж
http://stackoverflow.com/questions/4870346/can-a-jinja-variables-scope-extend-beyond-in-an-inner-block рдФрд░ http://stackoverflow.com/questions/9486393/jinja2-change- рдПрдХ-рд▓реВрдк-рдХреЗ-рдореВрд▓реНрдп-рдПрдХ-рдЪрд░-рдЕрдВрджрд░-рдПрдХ-рд▓реВрдк
рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рдордЭ рдирд╣реАрдВ рдкрд╛ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рд╡реЗ рд╣реИрдХреНрд╕ рдХреНрдпреЛрдВ рдЬрд░реВрд░реА рд╣реИрдВ, "рд╕реНрдерд╛рдиреАрдп var" рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдпрд╛ рд╕рдорд╛рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП
рд╕рд╛рджрд░
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдорд┐рддреНрд╕реБрд╣рд┐рдХреЛ,
рд╣рдореЗрдВ DriverX рдЬреИрд╕реА рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИред
рд╣рд╛рдВ, "рд╕реЗрдЯ" рдХрд╛ рдЙрдкрдпреЛрдЧ рдкреНрд░рд▓реЗрдЦрд┐рдд рд╣реИ, рд▓реЗрдХрд┐рди, рдХреНрдпрд╛ рдпрд╣ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ?
рд╣рдорд╛рд░рд╛ рдЙрджрд╛рд╣рд░рдг:
рдирддреАрдЬрд╛:
рдХреНрдпрд╛ рдЖрдк рд╣рдорд╛рд░реА рдорджрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рдзрдиреНрдпрд╡рд╛рдж