Kontent qismiga oʻtish

Jinja

Vikipediya, ochiq ensiklopediya

Jinja (jinja deb talaffuz qilinadi) Python dasturlash tili uchun shablonlash mexanizmi . U Django shablon mexanizmiga oʻxshaydi, lekin Pythonga oʻxshash ifodalarni taqdim etadi, bu shablonlarni vaqtinchalik muhitda bajarishga imkon beradi. Bu matn shablonlari mexanizmi, shuning uchun undan har qanday belgilash va manba kodini yaratish uchun foydalanish mumkin. BSD litsenziyasi ostida litsenziyalangan.

Jinja shablon mexanizmi – teglar [1], filtrlar, testlar va global oʻzgaruvchilarni [2] sozlash imkonini beradi. Bundan tashqari, Django shablon mexanizmidan farqli oʻlaroq, Jinja shablon konstruktoriga obyektlardagi argumentlar bilan funktsiyalarni chaqirish imkonini beradi.

Jinja, Smarty kabi, Unix konveyeriga oʻxshash foydalanish uchun qulay filtr tizimi bilan birga keladi.

Oddiy shablonga misol:

from jinja import from_string

tmpl = from_string('''\
<html>
<head><title>{{ variable|escape }}</title></head>
<body>
{% for item in item_list %}
   {{ item }}{% if not loop.last %},{% endif %}
{% endfor %}
</body>
</html>''')

print(tmpl.render(
    variable='Value with <unsafe> data',
    item_list=[1, 2, 3, 4, 5, 6]
))

HTMLdagi natija:

<html>
<head><title>Value with &lt;unsafe&gt; data</title></head>
<body>

    1,
    2,
    3,
    4,
    5,
    6

</body>
</html>

Qoʻllanilishi

[tahrir | manbasini tahrirlash]

(Flask) Veb-freymvorklardan tashqari, Jinja2, masalan, SaltStack [3] va Ansible konfiguratsiyalarni boshqarish tizimida ham qoʻllanadi.

  1. „Extensions — Jinja2 2.7-dev documentation“. 2010-yil 30-sentyabrda asl nusxadan arxivlangan. Qaraldi: 2012-yil 27-yanvar.
  2. „Extensions — Jinja2 2.7-dev documentation“. 2010-yil 30-sentyabrda asl nusxadan arxivlangan. Qaraldi: 2012-yil 27-yanvar.
  3. Colton Myers „Chapter 5. Expanding Our States with Jinja2 and Pillar“, . Learning SaltStack. Packt Publishing, 2015. ISBN 978-1-78439-901-6. 
  • Cunningham, K.. Python in 24 Hours, Sams Teach Yourself. Pearson Education, 2013. ISBN 9780133354461.