>>> from jinja2 import Template
>>> template = Template("'{{ foo }}', '{{ bar }}', '{{ baz }}'")
>>> template.render(foo='foobar', bar='barbaz', baz='bazfoo')
('foobar', 'barbaz', 'bazfoo')
>>> from jinja2.nativetypes import NativeEnvironment
>>> e = NativeEnvironment()
>>> t = e.from_string("'{{ foo }}', '{{ bar }}', '{{ baz }}'")
>>> t.render(foo='foobar', bar='barbaz', baz='bazfoo')
'foobar, barbaz, bazfoo'
μμ λν μ€λͺ μ μ°ΎμΌλ €κ³ ν©λλ€. μΈν°ν리ν°μμ μ΄κ²μ ν μ€νΈνμ¬ Jinja2λ‘λ§ μ’νκ³ jinja2_nativeκ° Trueλ‘ μ€μ λ Ansibleκ³Ό κ°μ΄ νΈμΆν μ μλ λ€λ₯Έ κ²μ μμ΅λλ€.
jinja2_nativeλ₯Ό μ¬μ©νμ§ μμ λ μΈ κ°μ§ λμ²΄κ° κ° κ° μ£Όμμ μμ λ°μ΄νλ‘ λ°μνλ μ΄μ μμλλ λμμ μ»μ΅λλ€. jinja2_nativeκ° trueλ‘ μ€μ λλ©΄(μμ κ°μ΄ NativeEnvironmentμμ) λ¬Έμμ΄μ λ΄λΆ μμλ°μ΄νκ° λ¬΄μλκ³ λ¨μΌ λ¬Έμμ΄μ΄ μΈ κ°μ λ체μ ν¨κ» λ°νλ©λλ€.
μ΄κ²μ μμλ°μ΄ν μ¬μ΄μ μΆκ° λ¬Έμκ° μλ κ²½μ°μλ λ°μν©λλ€.
>>> e = NativeEnvironment()
>>> t = e.from_string("--foo='{{ foo }}' --bar='{{ bar }}'")
>>> t.render(foo='foobar', bar='barbaz')
u"--foo='foobar --bar=barbaz'"
λμμ μ£Όμλ©΄ κ°μ¬νκ² μ΅λλ€.
μ΄κ²μ΄ (λ€μ) λ°μνλ μ΄μ μ λν μ½κ°μ λ©λͺ¨λ₯Ό μΆκ°νλ €λ©΄: "--foo='{{ foo }}' --bar='{{ bar }}'"
ν
νλ¦Ώμ λ€μ λ
Έλλ‘ λλ©λλ€.
--foo='
{{ foo }}
' --bar='
{{ bar }}
'"
λ¬Έμ λ native_concat
3μ μ²λ¦¬ν λ λ°μν©λλ€. ' --bar='
, literal_eval
λ¬Έμμ΄μ΄ νμλκ³ λ°μ΄νλ₯Ό μ κ±°νκ³ μ¬λ°λ₯Έ --bar=
λ§ λ°νν©λλ€. μ΄ μ»¨ν
μ€νΈ :)
@davidism μκ°μ΄
κ°μ₯ μ μ©ν λκΈ
μ΄κ²μ΄ (λ€μ) λ°μνλ μ΄μ μ λν μ½κ°μ λ©λͺ¨λ₯Ό μΆκ°νλ €λ©΄:
"--foo='{{ foo }}' --bar='{{ bar }}'"
ν νλ¦Ώμ λ€μ λ Έλλ‘ λλ©λλ€.--foo='
{{ foo }}
' --bar='
{{ bar }}
'"
λ¬Έμ λ
native_concat
3μ μ²λ¦¬ν λ λ°μν©λλ€.' --bar='
,literal_eval
λ¬Έμμ΄μ΄ νμλκ³ λ°μ΄νλ₯Ό μ κ±°νκ³ μ¬λ°λ₯Έ--bar=
λ§ λ°νν©λλ€. μ΄ μ»¨ν μ€νΈ :)@davidism μκ°μ΄