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
950
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
Moscow Python Meetup №108. Воркшоп "Построение AI-агента: Говори с данными на языке бизнеса"
moscowdjango
PRO
0
49
Moscow Python Meetup №108. Gather. Inspire. Deliver.
moscowdjango
PRO
0
36
Moscow Python Meetup №107. Бесшовные релизы глазами разработчика: обновляем код Облака без API
moscowdjango
PRO
0
45
Moscow Python Meetup №107. Django Blue-Green Migrations
moscowdjango
PRO
0
33
Moscow Python Meetup №107. Суперсжатые полнотекстовые индексы
moscowdjango
PRO
0
53
Moscow Python Meetup №106. Евгений Блинов (The Mutating Company, Founder). Суперфункции
moscowdjango
PRO
0
110
Moscow Python Meetup №106. Валерий Карпузов (SmartFX, Team Lead). Пиши, сокращай — Code Golf на Python
moscowdjango
PRO
0
120
Moscow Python Meetup №106. Николай Казак (Технический лидер роботизации бизнес-процессов, МТС Финтех). RPA по-взрослому
moscowdjango
PRO
0
63
Moscow Python Meetup №105. Кирилл Гладких (ООО Штаб, Python разработчик). Как вайбкодить по-сениорски
moscowdjango
PRO
0
160
Other Decks in Programming
See All in Programming
夢の無限スパゲッティ製造機 -実装篇- #phpstudy
o0h
PRO
0
160
Kubernetesでセルフホストが簡単なNewSQLを求めて / Seeking a NewSQL Database That's Simple to Self-Host on Kubernetes
nnaka2992
0
180
AI 開発合宿を通して得た学び
niftycorp
PRO
0
170
20260315 AWSなんもわからん🥲
chiilog
2
180
どんと来い、データベース信頼性エンジニアリング / Introduction to DBRE
nnaka2992
1
330
Redox OS でのネームスペース管理と chroot の実現
isanethen
0
450
Rethinking API Platform Filters
vinceamstoutz
0
910
PHP でエミュレータを自作して Ubuntu を動かそう
m3m0r7
PRO
2
150
Xdebug と IDE による デバッグ実行の仕組みを見る / Exploring-How-Debugging-Works-with-Xdebug-and-an-IDE
shin1x1
0
150
それはエンジニアリングの糧である:AI開発のためにAIのOSSを開発する現場より / It serves as fuel for engineering: insights from the field of developing open-source AI for AI development.
nrslib
1
580
PHP 7.4でもOpenTelemetryゼロコード計装がしたい! / PHPerKaigi 2026
arthur1
1
420
ネイティブアプリとWebフロントエンドのAPI通信ラッパーにおける共通化の勘所
suguruooki
0
190
Featured
See All Featured
Building an army of robots
kneath
306
46k
The Curious Case for Waylosing
cassininazir
0
280
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
230
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
1.9k
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
89
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
0
470
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
300
How Software Deployment tools have changed in the past 20 years
geshan
0
33k
The Pragmatic Product Professional
lauravandoore
37
7.2k
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
120
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
150
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