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
330
Flask, гордость и предубеждения
Yehor Nazarkin
January 13, 2014
Tweet
Share
More Decks by Yehor Nazarkin
See All by Yehor Nazarkin
Python non-mainstream web
nimnull
0
150
Агрегация и обработка статистики
nimnull
0
5.7k
Write once, run everywhere
nimnull
0
6.3k
GPU Computing in Python
nimnull
1
5.7k
To Flask or not to Flask
nimnull
5
630
MongoDB Без ORM
nimnull
0
300
REST in Flask (And small client-side intro)
nimnull
10
1.7k
Other Decks in Programming
See All in Programming
マイベストのシンプルなデータ基盤の話 - Googleスイートとのつき合い方 / mybest-simple-data-architecture-google-nized
snhryt
0
120
CSC305 Lecture 14
javiergs
PRO
0
210
CSC305 Lecture 10
javiergs
PRO
0
330
SidekiqでAIに商品説明を生成させてみた
akinko_0915
0
110
GitHub Copilotを使いこなせ!/mastering_github_copilot!
kotakageyama
2
730
Webサーバーサイド言語としてのRustについて
kouyuume
1
5k
AI駆動開発カンファレンスAutumn2025 _AI駆動開発にはAI駆動品質保証
autifyhq
0
110
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
180
Reactive Thinking with Signals and the Resource API
manfredsteyer
PRO
0
120
CSC305 Lecture 11
javiergs
PRO
0
320
React Nativeならぬ"Vue Native"が実現するかも?_新世代マルチプラットフォーム開発フレームワークのLynxとLynxのVue.js対応を追ってみよう_Vue Lynx
yut0naga1_fa
2
2k
O Que É e Como Funciona o PHP-FPM?
marcelgsantos
0
250
Featured
See All Featured
Building a Scalable Design System with Sketch
lauravandoore
463
33k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.5k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
15k
Code Reviewing Like a Champion
maltzj
526
40k
Typedesign – Prime Four
hannesfritz
42
2.9k
Music & Morning Musume
bryan
46
6.9k
Documentation Writing (for coders)
carmenintech
76
5.1k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
The World Runs on Bad Software
bkeepers
PRO
72
11k
For a Future-Friendly Web
brad_frost
180
10k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.7k
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
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 Имеет смысл переделать
Вопросы? ! ! ! ! Да, заставляют играть в танки