Jinja: рдкреНрд░рддрд┐рдкрд╛рджрди рдХрд░рддреЗ рд╕рдордп рдкрд┐рдЫрд▓реА рдиреНрдпреВрд▓рд╛рдЗрди рдЯреЗрдореНрдкрд▓реЗрдЯ рд╕реЗ рд╣рдЯрд╛ рджреА рдЬрд╛рддреА рд╣реИред

рдХреЛ рдирд┐рд░реНрдорд┐рдд 2 рдордИ 2018  ┬╖  2рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: pallets/jinja

рдЕрдкреЗрдХреНрд╖рд┐рддреН рд╡реНрдпрд╡рд╣рд╛рд░

рдПрдХ рдирдИ рд▓рд╛рдЗрди (\ n) рд╡рд░реНрдг рдореЗрдВ рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рд╡рд╛рд▓реА рдлрд╝рд╛рдЗрд▓ рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддреЗ рд╕рдордп, рдореИрдВ рдЙрдореНрдореАрдж рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдкреНрд░рд╕реНрддреБрдд рдЖрдЙрдЯрдкреБрдЯ рднреА рдПрдХ рдиреНрдпреВрд▓рд╛рдЗрди рд╡рд░реНрдг рдореЗрдВ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдпрд╣ рдПрдХ рдЕрдиреБрдЧрд╛рдореА рдиреНрдпреВрд▓рд╛рдЗрди рдХреЗ рд╕рд╛рде рдкрд╛рда рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП UNIX рдЬреИрд╕реА рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдкрд░ рдПрдХ рдорд╛рдирдХ рд╕рдореНрдореЗрд▓рди рд╣реИред

рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡реНрдпрд╡рд╣рд╛рд░

рд░реЗрдВрдбрд░ рдХрд┐рдП рдЧрдП рдЖрдЙрдЯрдкреБрдЯ рд╕реЗ рдЕрдВрддрд┐рдо рдиреНрдпреВрд▓рд╛рдЗрди рдЫреАрди рд▓реА рдЧрдИ рд╣реИред

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

>>> c
u'foo is {{ foo }}\nquux is {{ quux }}\nasdf\n'
>>> t = jinja2.Template(c)
>>> t.render(foo="bar", quux="baz")
u'foo is bar\nquux is baz\nasdf'
>>> s = t.stream()
>>> s.next()
u'foo is \nquux is \nasdf'
>>> s.next()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/ifreeman/.local/lib/python2.7/site-packages/jinja2/environment.py", line 1271, in __next__
    return self._next()
StopIteration
>>>

рдЖрдкрдХрд╛ рдкрд░реНрдпрд╛рд╡рд░рдг

  • рдкрд╛рдпрдерди рд╕рдВрд╕реНрдХрд░рдг: 2.7.14+ (рдбреЗрдмрд┐рдпрди рдмрд╕реНрдЯрд░/рдкрд░реАрдХреНрд╖рдг)
  • рдЬрд┐рдВрдЬрд╛ рд╕рдВрд╕реНрдХрд░рдг: 2.10 (рдкрд╛рдЗрдк рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ)

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

рдареАрдХ рд╣реИ, рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдореБрдЭреЗ рдкрддрд╛ рдирд╣реАрдВ рдерд╛ рдХрд┐ рдпрд╣ рдПрдХ рд╡рд┐рдХрд▓реНрдк рдерд╛, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдорд╛рди рд▓реЗрдирд╛ рдЕрдЬреАрдм рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рддрд░реАрдХреЛрдВ рд╕реЗ рдЗрдирдкреБрдЯ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЯреЗрдореНрдкрд▓реЗрдЯ рднрд╛рд╖рд╛ рд╕реЗ рдХреЛрдИ рд▓реЗрдирд╛-рджреЗрдирд╛ рдирд╣реАрдВ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдЗрд╕рд▓рд┐рдП рдЦреЛрд▓ рд░рд╣рд╛ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдирд┐рд░реНрдорд╛рдг рдХрд╛рд░реНрдп рдореЗрдВ рдХреБрдЫ рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдкреИрд░рд╛рдореАрдЯрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╢рд┐рдВрдЯреЛ-рдХреНрд▓реА (https://github.com/istrategylabs/shinto-cli) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдФрд░ рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдХрд┐ рдпрд╣ рдиреНрдпреВрд▓рд╛рдЗрди рдХреЗ рдмрд┐рдирд╛ рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдХрд░ рд░рд╣рд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рдЬрдм рдореИрдВ рдЙрдирд╕реЗ рдЬреБрдбрд╝рддрд╛ рд╣реВрдВ рддреЛ рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд▓рд╛рдЗрди рдкрд░ рдПрдХ рд╕рд╛рде рд╕реНрдХреНрд╡рд┐рд╢ рдХреА рдЧрдИ рд▓рд╛рдЗрдиреЗрдВ рд╣реЛрддреА рд╣реИрдВред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдореИрдВ рд╢рд┐рдВрдЯреЛ-рдХреНрд▓реА рдХреЗ рд╕рд╛рде рдПрдХ рдореБрджреНрджрд╛ рдЦреЛрд▓рдиреЗ рдЬрд╛ рд░рд╣рд╛ рдерд╛ рдЬрдм рддрдХ рдХрд┐ рдореИрдВрдиреЗ рд╕реНрд░реЛрдд рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдирд╣реАрдВ рджреЗрдЦрд╛, рдФрд░ рдлрд┐рд░ рдкрд╛рдЗрдерди рдЖрд░рдИрдкреАрдПрд▓ рд╕реЗ рдореВрд▓ рдЬрд┐рдиреНрдЬрд╛ 2 рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдФрд░ рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛ рдХрд┐ рдпрд╣ рд╕рд┐рд░реНрдл рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЬрд┐рдиреНрдЬрд╛ 2 рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реИред

рдореИрдВ рд╢рд┐рдВрдЯреЛ-рдХреНрд▓реА рдХреЗ рд╕рд╛рде рдпрд╣ рдкреВрдЫрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдореБрджреНрджрд╛ рдЦреЛрд▓ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рд╡реЗ рдЕрдкрдиреЗ рд╕рднреА рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЙрд▓реЛрдВ рдореЗрдВ Keep_trailing_newline=True рд╡рд┐рдХрд▓реНрдк рдЬреЛрдбрд╝реЗрдВред

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

keep_trailing_newline=True рдХреЛ Environment : http://jinja.pocoo.org/docs/api/#jinja2.Environment

рдареАрдХ рд╣реИ, рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдореБрдЭреЗ рдкрддрд╛ рдирд╣реАрдВ рдерд╛ рдХрд┐ рдпрд╣ рдПрдХ рд╡рд┐рдХрд▓реНрдк рдерд╛, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдорд╛рди рд▓реЗрдирд╛ рдЕрдЬреАрдм рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рддрд░реАрдХреЛрдВ рд╕реЗ рдЗрдирдкреБрдЯ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЯреЗрдореНрдкрд▓реЗрдЯ рднрд╛рд╖рд╛ рд╕реЗ рдХреЛрдИ рд▓реЗрдирд╛-рджреЗрдирд╛ рдирд╣реАрдВ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдЗрд╕рд▓рд┐рдП рдЦреЛрд▓ рд░рд╣рд╛ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдирд┐рд░реНрдорд╛рдг рдХрд╛рд░реНрдп рдореЗрдВ рдХреБрдЫ рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдкреИрд░рд╛рдореАрдЯрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╢рд┐рдВрдЯреЛ-рдХреНрд▓реА (https://github.com/istrategylabs/shinto-cli) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдФрд░ рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдХрд┐ рдпрд╣ рдиреНрдпреВрд▓рд╛рдЗрди рдХреЗ рдмрд┐рдирд╛ рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдХрд░ рд░рд╣рд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рдЬрдм рдореИрдВ рдЙрдирд╕реЗ рдЬреБрдбрд╝рддрд╛ рд╣реВрдВ рддреЛ рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд▓рд╛рдЗрди рдкрд░ рдПрдХ рд╕рд╛рде рд╕реНрдХреНрд╡рд┐рд╢ рдХреА рдЧрдИ рд▓рд╛рдЗрдиреЗрдВ рд╣реЛрддреА рд╣реИрдВред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдореИрдВ рд╢рд┐рдВрдЯреЛ-рдХреНрд▓реА рдХреЗ рд╕рд╛рде рдПрдХ рдореБрджреНрджрд╛ рдЦреЛрд▓рдиреЗ рдЬрд╛ рд░рд╣рд╛ рдерд╛ рдЬрдм рддрдХ рдХрд┐ рдореИрдВрдиреЗ рд╕реНрд░реЛрдд рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдирд╣реАрдВ рджреЗрдЦрд╛, рдФрд░ рдлрд┐рд░ рдкрд╛рдЗрдерди рдЖрд░рдИрдкреАрдПрд▓ рд╕реЗ рдореВрд▓ рдЬрд┐рдиреНрдЬрд╛ 2 рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдФрд░ рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛ рдХрд┐ рдпрд╣ рд╕рд┐рд░реНрдл рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЬрд┐рдиреНрдЬрд╛ 2 рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реИред

рдореИрдВ рд╢рд┐рдВрдЯреЛ-рдХреНрд▓реА рдХреЗ рд╕рд╛рде рдпрд╣ рдкреВрдЫрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдореБрджреНрджрд╛ рдЦреЛрд▓ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рд╡реЗ рдЕрдкрдиреЗ рд╕рднреА рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЙрд▓реЛрдВ рдореЗрдВ Keep_trailing_newline=True рд╡рд┐рдХрд▓реНрдк рдЬреЛрдбрд╝реЗрдВред

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

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

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

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

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

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

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