Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Jinja2 в Django
Search
Moscow Python Meetup
PRO
October 31, 2013
Programming
0
930
Jinja2 в Django
Владимир Филонов
В двух словах и нескольких цифрах о шаблонизаторе Jinja2 и его применении в Django
Moscow Python Meetup
PRO
October 31, 2013
Tweet
Share
More Decks by Moscow Python Meetup
See All by Moscow Python Meetup
Михаил Васильев (Cтарший специалист по машинному обучению) Поиск аномалий в данных. Алгоритмы iForest и PCA
moscowdjango
PRO
0
52
Мария Рубаненко (Fintech AI, Team lead DS) Повышаем производительность программ: мой путь к succ[ess | inct]
moscowdjango
PRO
0
74
Moscow Python Meetup №100. Зачем рекламе Python, а Python — реклама
moscowdjango
PRO
0
61
Moscow Python Meetup №100. 10 лет в MoscowPython: добрые истории
moscowdjango
PRO
0
39
Moscow Python Meetup №100. Митапы, пицца и карьера: как стикеры помогли стать тимлидом и стартапером
moscowdjango
PRO
0
47
Moscow Python Meetup №99. Михаил Васильев (Cтарший специалист по машинному обучению). Поиск аномалий в данных, алгоритмы HBOS и ECOD
moscowdjango
PRO
0
130
Moscow Python Meetup №99. Артем Геташвили (Senior Python Developer). Как работает спутниковая связь и при чём тут Python?
moscowdjango
PRO
0
82
Moscow Python Meetup №98 Михаил Васильев (Маквес, Старший специалист по машинному обучению). NLP нейросети в защите данных: опыт Makves DCAP
moscowdjango
PRO
0
160
Moscow Python Meetup №98 Алексей Лавриненко (Фаст Софт, Team Lead Python). Недописанная Кафкой Сага
moscowdjango
PRO
0
82
Other Decks in Programming
See All in Programming
GraphRAGの仕組みまるわかり
tosuri13
7
480
Go1.25からのGOMAXPROCS
kuro_kurorrr
1
800
5つのアンチパターンから学ぶLT設計
narihara
1
110
エラーって何種類あるの?
kajitack
5
310
地方に住むエンジニアの残酷な現実とキャリア論
ichimichi
5
1.3k
VS Code Update for GitHub Copilot
74th
1
370
Systèmes distribués, pour le meilleur et pour le pire - BreizhCamp 2025 - Conférence
slecache
0
100
なぜ適用するか、移行して理解するClean Architecture 〜構造を超えて設計を継承する〜 / Why Apply, Migrate and Understand Clean Architecture - Inherit Design Beyond Structure
seike460
PRO
1
690
なぜ「共通化」を考え、失敗を繰り返すのか
rinchoku
1
510
git worktree × Claude Code × MCP ~生成AI時代の並列開発フロー~
hisuzuya
1
470
Select API from Kotlin Coroutine
jmatsu
1
190
CursorはMCPを使った方が良いぞ
taigakono
1
170
Featured
See All Featured
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
130
19k
Docker and Python
trallard
44
3.4k
Documentation Writing (for coders)
carmenintech
72
4.9k
Building Adaptive Systems
keathley
43
2.6k
Visualization
eitanlees
146
16k
Speed Design
sergeychernyshev
32
1k
GraphQLの誤解/rethinking-graphql
sonatard
71
11k
Faster Mobile Websites
deanohume
307
31k
BBQ
matthewcrist
89
9.7k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Making the Leap to Tech Lead
cromwellryan
134
9.3k
Designing Experiences People Love
moore
142
24k
Transcript
Jinja2 в Django В двух словах
Django-шаблоны медленные. Печально, но факт.
Зато Jinja2 быстрые
И синтаксис почти такой же
Скобки при вызове методов. Это позволяет вызывать их с аргументами
class Person(models.Model): … def get_friends(count): …
# Django {{ person.get_friends }} Увы, это вызовет исключение и
инструкция не выполнится. И нам понадобится, например, делать templatetag # Jinja {{ person.get_friends(10) }}
И фильтры, кстати, тоже со скобками {{ my_var|some_filter("arg1", "arg2") }}
{{ }} не только для переменных, но и для глобальных
функций* В Jinja простые templatetags это просто функции зарегистрированные в окружении. Сложные теги реализовываются в виде плагинов.
django.template.Library.simple_tag(some_function) vs jinja2.Environment.globals[key] = function_or_var
Чтобы перейти, надо решить несколько основных проблем
Нет большинства привычных фильтров и тегов
Но не беда - большинство можно просто добавить в окружение
Jinja и они будут работать
from django.template.defaultfilters import escapejs jinja2.Environment.globals[“escapejs”] = escapejs
Или взять что-то из готовых решений https://github.com/niwibe/django-jinja/ https://bitbucket.org/trevor/chouwa http://google.com =)
+ Значительный прирост скорости + ИМХО - более человеческий синтаксис
- Не из коробки - Большинство contrib и внешних django-приложений может потребовать бубна
Производительность
Jinja2 примерно в 10-20 раз быстрее чем Django*
http://mindref.blogspot.ru/2012/10/python-templates-benchmark.html
Спасибо! email:
[email protected]
fb: https://www.facebook.com/pyhoster