Jinja: рдмреНрд▓реЙрдХ рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рд╕реНрдХреЛрдк рдЗрдирд▓рд╛рдЗрди рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рд╕реЗ рдЕрд▓рдЧ рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 27 рдЬреВрди 2016  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: pallets/jinja

рдореИрдВ рдПрдХ рдЪрд╛рдЗрд▓реНрдб рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдореЗрдВ рдПрдХ рд╡реИрд░рд┐рдПрдмрд▓ рд╕реЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдЬрд┐рд╕реЗ рдкреЗрд░реЗрдВрдЯ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдпрджрд┐ рдореИрдВ рдмреНрд▓реЙрдХ рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдХреБрдЫ рднреА рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдореИрдВ рдЗрдирд▓рд╛рдЗрди рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдпрд╣ рдЕрдкреЗрдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдореИрдВ рдкрд╛рдпрдерди 2 рдХреЗ рд╕рд╛рде рдЬрд┐рдВрдЬрд╛ 2.8 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

base.html :

{{ content }}

bad.html рдмреНрд▓реЙрдХ рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдХреЗ рд╕рд╛рде, рдХреБрдЫ рднреА рдирд╣реАрдВ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛:

{% extends 'base.html' %}
{% set content %}
Hello, World!
{% endset %}

good.html , рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реИ:

{% extends 'base.html' %}
{% set content = 'Hello, World!' %}

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

рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рднреА рд╕рдордЭ рд▓рд┐рдпрд╛ред рд╕рд░рд▓ рдкрд░реАрдХреНрд╖рдг:

{% extends "..." %}
...
{% set aaa = 'test' %}
{% set bbb %}
    <a href="/">bar</a>
{% endset %}
...
{% block some_block %}
 {{ aaa }} {# renders 'test' #}
 {{ bbb }} {# renders empty string #}
{% endblock %}

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

рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рднреА рд╕рдордЭ рд▓рд┐рдпрд╛ред рд╕рд░рд▓ рдкрд░реАрдХреНрд╖рдг:

{% extends "..." %}
...
{% set aaa = 'test' %}
{% set bbb %}
    <a href="/">bar</a>
{% endset %}
...
{% block some_block %}
 {{ aaa }} {# renders 'test' #}
 {{ bbb }} {# renders empty string #}
{% endblock %}

рдореИрдВ 'рдЕрд╕рдВрдЧрдд' рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рдЕрд╕рдВрдЧрдд рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ:

{% with %}
{% set something = 'werd' %}
{% set something_block %}
werd werd werd
{% endset %}
{% endwith %}
...
{{ something }} {# renders empty string #}
{{ something_block }} {# renders 'werd werd werd' #}

рдпреЗ рдмрдЧ рд╢рд╛рдпрдж рд╕рдВрдмрдВрдзрд┐рдд рд╣реИрдВ?

рдмрдпрд╛рди рдХреЗ рд╕рд╛рде рдЙрд╕ рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рддрд╛рдХрд┐ рдпрд╣ рдЬрд╛рдирдмреВрдЭрдХрд░ рд╣реЛред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореИрдВ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдорд╛рд╕реНрдЯрд░ рдореЗрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдкреБрди: рдкреЗрд╢ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред

рдХреЛрдИ рдмрд╛рдд рдирд╣реАрдВ, рдореИрдВ рджреЗрдЦрддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдореБрджреНрджрд╛ рдХреНрдпрд╛ рд╣реИред

45b59b522a542c21611214b352df049a3b6dcc4 рдореЗрдВ рдмрджрд▓ рдЧрдпрд╛

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

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

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

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

jp-costa picture jp-costa  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

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

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