Jinja: рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдЖрдпрд╛рдд/рджреЛ рдмрд╛рд░ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЧрдпрд╛

рдХреЛ рдирд┐рд░реНрдорд┐рдд 16 рджрд┐рд╕ре░ 2014  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: pallets/jinja

рдореИрдВ рд╕рд┐рд░реНрдл рдЬрд┐рдиреНрдЬрд╛ 2 рдХреЗ рд╕рд╛рде рд╢реБрд░реБрдЖрдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдЕрдЬреАрдм рдореБрджреНрджреЗ рдореЗрдВ рднрд╛рдЧ рдЧрдпрд╛, рдЬрд┐рд╕реЗ # 255 рдореБрджреНрджреЗ рдкрд░ рднреА рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ (рдмрдВрдж, рд▓реЗрдХрд┐рди рд░рд┐рдкреЛрд░реНрдЯрд░ рджреНрд╡рд╛рд░рд╛ рдХреЛрдИ рдлреЙрд▓реЛрдЕрдк рдирд╣реАрдВ рдерд╛)ред

рдореИрдВ рд╡рд┐рдВрдбреЛрдЬ 7 x64 рдкрд░ рдкрд╛рдпрдерди 3.4.1 рдЪрд▓рд╛ рд░рд╣рд╛ рд╣реВрдВ
рдореИрдВрдиреЗ jinja2 рдХреЛ "easy_install Jinja2" рдХреЗ рд╕рд╛рде рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛

рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ ...jinja2-testjinja2-test.py рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдпрд╣ рд╢рд╛рдорд┐рд▓ рд╣реИ:

from jinja2 import Environment, PackageLoader
env = Environment(loader=PackageLoader('jinja2-test', 'templates'))

template = env.get_template('mytemplate.html')

print(env.list_templates())
print(template.render(the='variables', go='here'))

рдФрд░ рдПрдХ рдЯреЗрдореНрдкрд▓реЗрдЯ ...jinja2-testtemplatesmytemplate.html

<html>
<head></head>

<body>
    <h1>Rendered template</h1>
    This template shows that the {{ the }} go {{ go }}
</body>

</html>

рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░ рдореИрдВ рдХрд░рддрд╛ рд╣реВрдВ: python jinja2-test.py рдФрд░ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рд╕реВрдЪреАрдмрджреНрдз рд╣реИрдВ рдФрд░ рджреЛ рдмрд╛рд░ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдП рдЧрдП рд╣реИрдВ:

...\jinja2-test> python jinja2-test.py
['mytemplate.html']
<html>
<head></head>

<body>
    <h1>Rendered template</h1>
    This template shows that the variables go here
</body>

</html>
['mytemplate.html']
<html>
<head></head>

<body>
    <h1>Rendered template</h1>
    This template shows that the variables go here
</body>

</html>

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

рдЕрдЬрдЧрд░ 3.4.2 . рдХреЗ рд╕рд╛рде рдХрдЯреНрдЯрд░ рд▓рд┐рдирдХреНрд╕ рдкрд░ рдПрдХ рд╣реА рдореБрджреНрджрд╛ рдерд╛

PackageLoader рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдкреВрд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рджреВрд╕рд░реА рдмрд╛рд░ рдЪрд▓рд╛ рд░рд╣рд╛ рд╣реИ, рдпрд╣ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд╣реА 2 рдкреНрд░рд┐рдВрдЯ рдирд╣реАрдВ рд╣реИред
рдЗрд╕рдХреЗ рдмрдЬрд╛рдп FileSystemLoader рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдФрд░ рдпрд╣ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:

from jinja2 import Environment, FileSystemLoader
env = Environment(loader=FileSystemLoader('templates'))

рджрд╕реНрддрд╛рд╡реЗрдЬ рд╡рд╣рд╛рдВ рдереЛрдбрд╝рд╛ рднреНрд░рд╛рдордХ рдерд╛;)

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

рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рдХреИрд╕реЗ ['mytemplate.html'] рджреЛ рдмрд╛рд░ рдореБрджреНрд░рд┐рдд рд╣реЛрддрд╛ рд╣реИ, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рдХрд╛рд░ рдХреЗ рджреЛ рдкреНрд░рд┐рдВрдЯ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рд╣реИрдВ ... рдореИрдВрдиреЗ рдЗрд╕реЗ рд▓рд┐рдирдХреНрд╕ рдФрд░ рд╡рд┐рдВрдбреЛрдЬ рджреЛрдиреЛрдВ рдкрд░ рдЖрдЬрдорд╛рдпрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдкреБрди: рдкреЗрд╢ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред

рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рдкреБрди: рдкреЗрд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рдХреГрдкрдпрд╛ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рджрд┐рдЦрд╛рддреЗ рд╣реБрдП рдПрдХ рдкреВрд░реНрдг рдЯреЗрд╕реНрдЯрдХреЗрд╕ рдмрдирд╛рдПрдВ (рдФрд░ рдЗрд╕реЗ рдЧрд┐рдЯ рд░реЗрдкреЛ рдореЗрдВ рд░рдЦреЗрдВ)ред

рдЕрдЬрдЧрд░ 3.4.2 . рдХреЗ рд╕рд╛рде рдХрдЯреНрдЯрд░ рд▓рд┐рдирдХреНрд╕ рдкрд░ рдПрдХ рд╣реА рдореБрджреНрджрд╛ рдерд╛

PackageLoader рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдкреВрд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рджреВрд╕рд░реА рдмрд╛рд░ рдЪрд▓рд╛ рд░рд╣рд╛ рд╣реИ, рдпрд╣ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд╣реА 2 рдкреНрд░рд┐рдВрдЯ рдирд╣реАрдВ рд╣реИред
рдЗрд╕рдХреЗ рдмрдЬрд╛рдп FileSystemLoader рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдФрд░ рдпрд╣ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:

from jinja2 import Environment, FileSystemLoader
env = Environment(loader=FileSystemLoader('templates'))

рджрд╕реНрддрд╛рд╡реЗрдЬ рд╡рд╣рд╛рдВ рдереЛрдбрд╝рд╛ рднреНрд░рд╛рдордХ рдерд╛;)

рдореЗрд░реЗ рдкрд╛рд╕ Ubuntu 14.04 рдкрд░ Python 2.7.11, Jinja2 2.8 рдФрд░ рдлреНрд▓рд╛рд╕реНрдХ 0.11.1 рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИред
рдФрд░ рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдореЗрд░рд╛ рдХреЛрдб рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рд░ рдЪрд▓рддрд╛ рд╣реИ!

рдиреЛрдЯ : рдпрд╣ рддрднреА рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдореИрдВ рд╕рд░реНрд╡рд░ рдХреЗ рдкреБрдирд░рд╛рд░рдВрдн рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдкрд╣рд▓реА рдмрд╛рд░ рдХреБрдЫ рдкреЗрдЬ рдЦреЛрд▓рддрд╛ рд╣реВрдВ! рдЬрдм рдореИрдВ рдкреЗрдЬ рдЕрдкрдбреЗрдЯ рдХрд░рддрд╛ рд╣реВрдВ - рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдПрдХ рдмрд╛рд░ рд▓реЛрдб рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред

рдпрд╣ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдиреЗ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ example.py рдЬреЛ рд╕реНрд╡рдпрдВ рдЖрдпрд╛рдд рдХрд░рддрд╛ рд╣реИ:

data = "foo"

import example

print(data)

python example.py рдкрд╣рд▓реЗ example рдХреЛ __main__ рдХреЗ рд░реВрдк рдореЗрдВ рдЖрдпрд╛рдд рдХрд░рддрд╛ рд╣реИ, рдлрд┐рд░ рдпрд╣ рдЦреБрдж рдХреЛ example рдХреЗ рд░реВрдк рдореЗрдВ рдЖрдпрд╛рдд рдХрд░рддрд╛ рд╣реИред рдЖрдпрд╛рдд рдХреИрд╢ рдХреЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЗ рдХрд╛рд░рдг, рдЗрд╕рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдореЙрдбреНрдпреВрд▓ рдХреЗ рджреЛ рдирд┐рд╖реНрдкрд╛рджрди рдореЗрдВ рд╣реЛрддрд╛ рд╣реИред рд╡рд╣ рд╕рд┐рд░реНрдл рдкрд╛рдпрдерди рд╣реИ, рдпрд╣ рдРрд╕рд╛ рдХреБрдЫ рдирд╣реАрдВ рд╣реИ рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд┐рдВрдЬрд╛ рдХреБрдЫ рднреА рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рдпрджрд┐ рдЖрдк __init__.py рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкреИрдХреЗрдЬ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдПрдХ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд░реВрдк рдореЗрдВ, рдпрд╛ рдПрдХ рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреБ рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд▓рд╛рддреЗ рд╣реИрдВ, рддреЛ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдпрд╛ рдореБрдЦреНрдп рдХреЛрдб рдХреЛ if __name__ == "__main__": рдмреНрд▓реЙрдХ рдореЗрдВ рд░рдЦреЗрдВред

рдЕрдЬрдЧрд░ 3.4.2 . рдХреЗ рд╕рд╛рде рдХрдЯреНрдЯрд░ рд▓рд┐рдирдХреНрд╕ рдкрд░ рдПрдХ рд╣реА рдореБрджреНрджрд╛ рдерд╛

PackageLoader рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдкреВрд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рджреВрд╕рд░реА рдмрд╛рд░ рдЪрд▓рд╛ рд░рд╣рд╛ рд╣реИ, рдпрд╣ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд╣реА 2 рдкреНрд░рд┐рдВрдЯ рдирд╣реАрдВ рд╣реИред
рдЗрд╕рдХреЗ рдмрдЬрд╛рдп FileSystemLoader рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдФрд░ рдпрд╣ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:

from jinja2 import Environment, FileSystemLoader
env = Environment(loader=FileSystemLoader('templates'))

рджрд╕реНрддрд╛рд╡реЗрдЬ рд╡рд╣рд╛рдВ рдереЛрдбрд╝рд╛ рднреНрд░рд╛рдордХ рдерд╛;)

рдореИрдВ

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

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

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

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

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

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

The-Compiler picture The-Compiler  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ