Jinja — рушій шаблонів для мови програмування Python створений Арміном Ронакером з ліцензією BSD. На відміну від схожого рушія шаблонів у Django, використовує вирази у стилі мови Python та використовує пісочницю для шаблонів. Завдяки тому, що шаблони Jinja засновані на текстовому форматі, тому створення розмітки документу стає подібним до написання сирцевого коду.
Тип | бібліотека Шаблонізатор d і d |
---|---|
Розробник | Армін Ронакер |
Мова програмування | Python[1] |
Ліцензія | d[2][3] |
Репозиторій | github.com/pallets/jinja |
Вебсайт | palletsprojects.com/p/jinja/ |
Шаблони рушія Jinja надають можливості налаштування тегів, фільтрів, тестів та глобальних параметрів. Також, на відміну від рушія Django, Jinja дозволяє розробнику шаблонів викликати функції з об'єктами у якості аргументів. Jinja є основним рушієм шаблонів у Flask.
Властивості
Основні властивості Jinja:
- виконання у пісочниці
- потужна автоматизація [en] для запобігання атак міжсайтового скриптингу (XSS)
- спадковість шаблонів
- виконується компіляція в оптимальний python код на момент використання
- опціонально доступна дострокова компіляція шаблонів
- легке зневадження. Номери рядків винятків безпосередньо вказують на правильний рядок шаблону.
- синтаксис можна налаштувати
Jinja, подібно Smarty, має легку у використанні систему фільтрів подібно до конвеєра у Unix.
Приклад
Тут наведено невеличкий приклад файлу шаблону 'example.html.jinja'
<!DOCTYPE html> <html> <head> <title>{{ variable|escape }}</title> </head> <body> {%- for item in item_list %} {{ item }}{% if not loop.last %},{% endif %} {%- endfor %} </body> </html>
і код шаблону:
from jinja2 import Template with open('example.html.jinja') as f: tmpl = Template(f.read()) print tmpl.render( variable = 'Value with <unsafe> data', item_list = [1, 2, 3, 4, 5, 6] )
Він породжує наступний HTML код:
<!DOCTYPE html> <html> <head> <title>Value with <unsafe> data</title> </head> <body> 1, 2, 3, 4, 5, 6 </body> </html>
Примітки
- The jinja Open Source Project on Open Hub: Languages Page — 2006.
- https://github.com/pallets/jinja/blob/2.10/LICENSE
- The jinja Open Source Project on Open Hub: Licenses Page — 2006.
- . Jinja2 Documentation (2.8-dev). Архів оригіналу за 9 вересня 2017. Процитовано 26 травня 2015.
- . Jinja2 Documentation (2.8-dev). Архів оригіналу за 9 вересня 2017. Процитовано 26 травня 2015.
- DuPlain, R. (2013). . Packt Publishing. с. 30. ISBN . Архів оригіналу за 29 листопада 2018. Процитовано 26 травня 2015.
- . Архів оригіналу за 29 грудня 2010. Процитовано 9 вересня 2017.
{{}}
: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title () - Ronacher, Armin. . Jinja2 Documentation. Архів оригіналу за 13 листопада 2016. Процитовано 7 січня 2016.
A Jinja template doesn’t need to have a specific extension: .html, .xml, or any other extension is just fine.
Джерела
- Jinja вебсайт [ 29 грудня 2010 у Wayback Machine.]
- Jinja2 [ 27 листопада 2017 у Wayback Machine.] на Python PyPI
- jinja2 на GitHub
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Jinja rushij shabloniv dlya movi programuvannya Python stvorenij Arminom Ronakerom z licenziyeyu BSD Na vidminu vid shozhogo rushiya shabloniv u Django vikoristovuye virazi u stili movi Python ta vikoristovuye pisochnicyu dlya shabloniv Zavdyaki tomu sho shabloni Jinja zasnovani na tekstovomu formati tomu stvorennya rozmitki dokumentu staye podibnim do napisannya sircevogo kodu JinjaTipbiblioteka Shablonizator d i dRozrobnikArmin RonakerMova programuvannyaPython 1 Licenziyad 2 3 Repozitorijgithub com pallets jinjaVebsajtpalletsprojects com p jinja Shabloni rushiya Jinja nadayut mozhlivosti nalashtuvannya tegiv filtriv testiv ta globalnih parametriv Takozh na vidminu vid rushiya Django Jinja dozvolyaye rozrobniku shabloniv viklikati funkciyi z ob yektami u yakosti argumentiv Jinja ye osnovnim rushiyem shabloniv u Flask VlastivostiOsnovni vlastivosti Jinja vikonannya u pisochnici potuzhna avtomatizaciya en dlya zapobigannya atak mizhsajtovogo skriptingu XSS spadkovist shabloniv vikonuyetsya kompilyaciya v optimalnij python kod na moment vikoristannya opcionalno dostupna dostrokova kompilyaciya shabloniv legke znevadzhennya Nomeri ryadkiv vinyatkiv bezposeredno vkazuyut na pravilnij ryadok shablonu sintaksis mozhna nalashtuvati Jinja podibno Smarty maye legku u vikoristanni sistemu filtriv podibno do konveyera u Unix PrikladTut navedeno nevelichkij priklad fajlu shablonu example html jinja lt DOCTYPE html gt lt html gt lt head gt lt title gt variable escape lt title gt lt head gt lt body gt for item in item list item if not loop last endif endfor lt body gt lt html gt i kod shablonu from jinja2 import Template with open example html jinja as f tmpl Template f read print tmpl render variable Value with lt unsafe gt data item list 1 2 3 4 5 6 Vin porodzhuye nastupnij HTML kod lt DOCTYPE html gt lt html gt lt head gt lt title gt Value with amp lt unsafe amp gt data lt title gt lt head gt lt body gt 1 2 3 4 5 6 lt body gt lt html gt PrimitkiThe jinja Open Source Project on Open Hub Languages Page 2006 d Track Q124688 https github com pallets jinja blob 2 10 LICENSE The jinja Open Source Project on Open Hub Licenses Page 2006 d Track Q124688 Jinja2 Documentation 2 8 dev Arhiv originalu za 9 veresnya 2017 Procitovano 26 travnya 2015 Jinja2 Documentation 2 8 dev Arhiv originalu za 9 veresnya 2017 Procitovano 26 travnya 2015 DuPlain R 2013 Packt Publishing s 30 ISBN 978 1 78216 963 5 Arhiv originalu za 29 listopada 2018 Procitovano 26 travnya 2015 Arhiv originalu za 29 grudnya 2010 Procitovano 9 veresnya 2017 a href wiki D0 A8 D0 B0 D0 B1 D0 BB D0 BE D0 BD Cite web title Shablon Cite web cite web a Obslugovuvannya CS1 Storinki z tekstom archived copy yak znachennya parametru title posilannya Ronacher Armin Jinja2 Documentation Arhiv originalu za 13 listopada 2016 Procitovano 7 sichnya 2016 A Jinja template doesn t need to have a specific extension html xml or any other extension is just fine DzherelaJinja vebsajt 29 grudnya 2010 u Wayback Machine Jinja2 27 listopada 2017 u Wayback Machine na Python PyPI jinja2 na GitHub