Jinja: {% рд╕реЗрдЯ%} рд╡реИрд╢реНрд╡рд┐рдХ рд╕рдВрджрд░реНрдн рдХреЗ рд▓рд┐рдП var рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 22 рдирд╡ре░ 2012  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: pallets/jinja

рдЯреЗрдореНрдкрд▓реЗрдЯ:

{% 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

рдбрдмреНрд▓реНрдпреВрдЯреАрдПрдл?

рдХреГрдкрдпрд╛ рд╡реИрд╢реНрд╡рд┐рдХ рдЪрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рдмрдирд╛рдПрдВред

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдорд┐рддреНрд╕реБрд╣рд┐рдХреЛ,

рд╣рдореЗрдВ DriverX рдЬреИрд╕реА рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИред
рд╣рд╛рдВ, "рд╕реЗрдЯ" рдХрд╛ рдЙрдкрдпреЛрдЧ рдкреНрд░рд▓реЗрдЦрд┐рдд рд╣реИ, рд▓реЗрдХрд┐рди, рдХреНрдпрд╛ рдпрд╣ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ?

рд╣рдорд╛рд░рд╛ рдЙрджрд╛рд╣рд░рдг:

 {% рд╕реЗрдЯ the_var = 'foo'%}
 {% рддрддреНрд╡реЛрдВ рдореЗрдВ рдИ рдХреЗ рд▓рд┐рдП%}
 {% рд╕реЗрдЯ the_var = 'рд╣рд╛рдБ'%} 
 рд╡рд░: {{ the_var }}
 {%- рд╕рдорд╛рдкреНрддрд┐ %}
 the_var: {{ the_var }}

рдирддреАрдЬрд╛:

 the_var: рд╣рд╛рдБ
 the_var: рд╣рд╛рдБ
 the_var: foo

рдХреНрдпрд╛ рдЖрдк рд╣рдорд╛рд░реА рдорджрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рдзрдиреНрдпрд╡рд╛рдж

рд╕рднреА 4 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдХреБрдЫ рдФрд░ рд╡рд┐рд╡рд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдЪрд┐рдкрдХрд╛рдирд╛ред рдЕрдВрджрд░ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдорд╣рд╕реВрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрд░реЛрдХреНрдд рдХреЛрдб рдРрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ:

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" рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдпрд╛ рд╕рдорд╛рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП

рд╕рд╛рджрд░

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

navilan picture navilan  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Xion picture Xion  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

htgoebel picture htgoebel  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

harobed picture harobed  ┬╖  6рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

AMDmi3 picture AMDmi3  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ