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
Flask, гордость и предубеждения
Search
Yehor Nazarkin
January 13, 2014
Programming
0
310
Flask, гордость и предубеждения
Yehor Nazarkin
January 13, 2014
Tweet
Share
More Decks by Yehor Nazarkin
See All by Yehor Nazarkin
Python non-mainstream web
nimnull
0
140
Агрегация и обработка статистики
nimnull
0
5.7k
Write once, run everywhere
nimnull
0
6.2k
GPU Computing in Python
nimnull
1
5.7k
To Flask or not to Flask
nimnull
5
620
MongoDB Без ORM
nimnull
0
280
REST in Flask (And small client-side intro)
nimnull
10
1.7k
Other Decks in Programming
See All in Programming
KMP와 kotlinx.rpc로 서버와 클라이언트 동기화
kwakeuijin
0
160
PHPUnitしか使ってこなかった 一般PHPerがPestに乗り換えた実録
mashirou1234
0
230
PHPとAPI Platformで作る本格的なWeb APIアプリケーション(入門編) / phpcon 2024 Intro to API Platform
ttskch
0
270
アクターシステムに頼らずEvent Sourcingする方法について
j5ik2o
4
290
CQRS+ES の力を使って効果を感じる / Feel the effects of using the power of CQRS+ES
seike460
PRO
0
140
各クラウドサービスにおける.NETの対応と見解
ymd65536
0
110
良いユニットテストを書こう
mototakatsu
8
2.8k
毎日13時間もかかるバッチ処理をたった3日で60%短縮するためにやったこと
sho_ssk_
1
180
たのしいparse.y
ydah
3
120
採用事例の少ないSvelteを選んだ理由と それを正解にするためにやっていること
oekazuma
2
1k
Fibonacci Function Gallery - Part 1
philipschwarz
PRO
0
220
情報漏洩させないための設計
kubotak
3
340
Featured
See All Featured
No one is an island. Learnings from fostering a developers community.
thoeni
19
3k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
29
2k
Rails Girls Zürich Keynote
gr2m
94
13k
A Philosophy of Restraint
colly
203
16k
The Invisible Side of Design
smashingmag
298
50k
Unsuck your backbone
ammeep
669
57k
Producing Creativity
orderedlist
PRO
341
39k
A better future with KSS
kneath
238
17k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
How GitHub (no longer) Works
holman
311
140k
Git: the NoSQL Database
bkeepers
PRO
427
64k
Transcript
Flask гордость и предубеждение
Об авторе Python Javascript Web Networking Егор Назаркин Wargaming.net Twitter:
@nimnull
В тени django ORM, templating, project layout, etc. VS DIY
(+API)
Начало 1. Werkzeug 2. Jinja2 3. Выбрать компоненты 4. Понять
app_context и request_context ›❯ pip search flask | wc -l 451 [ ]
Например Flask-And-Redis Flask-Babel Flask-Cache Flask-ElasticSearch Flask-Login Flask-Mail Flask-OAuth Flask-Principal Flask-S3
Flask-SQLAlchemy Flask-Script Flask-Security Flask-Social Flask-WTF
Первые проблемы зависимости версий Flask-Social => Flask-Security => Flask-Principal =>
Flask-Login
Структура проекта • эволюция от app.py до factory.py (flask-kit) •
Борьба с циклическими импортами • ext.init_app(…) • app.register_blueprint(…)
Пара костылей • extensions.py должен быть доступен для импорта
Проблемы с контекстом нет контекста при импорте? — from werkzeug.local
import LocalProxy всё надоело? — from werkzeug.utils import import_string
Лень • class LazyView • class LazyResource • class LazyBlueprint
— Двигатель прогресса
Адаптация • CRUDMixin (AR-like стиль для моделей) • https://github.com/nimnull/flamaster, например
• sqlamp:
Компоновка • Как “правильно” организовать проект? • Multiple Application —
отлично (если есть multi- domain) • Разделить на blueprint-ы, почему не flask- extensions?
Тестирование • Flask-Testing, Flask-Test — хорошая попытка
Celery • Концепция контекста приложения • для запуска нужен контекст
приложения Flask (:
Celery
Celery Имеет смысл переделать
Вопросы? ! ! ! ! Да, заставляют играть в танки