Logo
TGCATALOG
Catálogo Selecciones Blog
Библиотека питониста: Python Django Flask

Библиотека питониста: Python Django Flask

Все полезное для Python разработчиков: Django, Flask и библиотеки.

Sin valoraciones
178
10.09.2026
178
10.09.2026
Sin valoraciones
178
10.09.2026
Redirección segura vía bot
О канале

Все полезное для Python разработчиков: Django, Flask и библиотеки.

Подписчиков 37,433
Тематика IT
Язык Español
Ссылка t.me/pyproglib
Descripción

Комплексный канал для питонистов. Содержит подборки библиотек, гайды по Django и Flask, примеры кода и советы. Все самое нужное в одном месте для эффективной работы и обучения веб-разработке на Python.

Últimas publicaciones

Библиотека питониста: Python Django Flask
Библиотека питониста: Python Django Flask
🔒Открыть пост
и посмотреть медиа
➡️ Два бага из-за области видимости в Python — и как их избежать Приложение работает нормально. Открываешь вторую вкладку — данные не те. Тесты проходят по отдельности, но падают вместе. Причина — объект на уровне модуля. Проблема 1: слишком много sharing Типичный паттерн в FastAPI-проектах: # database.py engine = create_engine("sqlite:///database.db") engine создаётся в момент импорта. Все модули, которые импортируют из database.py, используют один и тот же engine, один пул соединений, один файл БД. Тесты чистят базу через setup/teardown, но состояние всё равно утекает: автоинкремент ID, кэш метаданных, внутреннее состояние SQLite. Тест assert id == 1 проходит первым, но падает если запустить после другого теста. Фикс — создавать engine на каждый тест: @pytest.fixture def engine(): engine = create_engine("sqlite://", echo=False) SQLModel.metadata.create_all(engine) yield engine engine.dispose() In-memory БД, никакого shared state, никакой уборки. Проблема 2: слишком мало sharing Обратная ситуация. Зависимость FastAPI создаёт новый экземпляр на каждый запрос: def get_data_source() -> DataSource: return FakeDataSource(...) # новый объект каждый раз Каждая вкладка браузера получает свой FakeDataSource со своим состоянием с нуля. Вкладка А показывает одно, вкладка Б — другое. Никакой общей реальности нет. Фикс — app.state: @asynccontextmanager async def lifespan(app: FastAPI): app.state.data_source = get_data_source() yield def get_data_source(request: Request) -> DataSource: return request.app.state.data_source Один экземпляр на весь процесс, легко подменяется в тестах через dependency_overrides. Правило одной строкой Если объект хранит мутабельное состояние — выбирай его скоуп осознанно. Слишком широкий (модуль) — тесты текут друг в друга. Слишком узкий (каждый запрос) — нет общего состояния. Константы и чистые значения на уровне модуля — ок. Ресурсы (DB engine, HTTP клиент, кэш, пул соединений) — нет. 📍 Навигация: Вакансии • Задачи • Собесы Библиотека питониста #буст
Библиотека питониста: Python Django Flask
Evolución de suscriptores
+0.0% últimos 30 días
Actuales
37,433
Hace un mes
37,446
Crecimiento medio
+0 / día
Actualizado
hace 19 horas

Reseñas de canal Библиотека питониста: Python Django Flask

Inicia sesión para dejar una reseña

Solo los usuarios registrados pueden compartir su opinión.

Aún no hay reseñas

¡Sé el primero en compartir tu experiencia con este recurso!

Recursos similares

Capacitación en análisis de vulnerabilidad e instrumentos.

Bot

Un canal con modos de aplicación premium para Android.

Canal

Proyecto musical independiente con potentes pistas electrónicas en géneros breakbeat. big beat y rave.

Canal
Cambiar a tema claro
Inicio Catálogo Selecciones Blog Entrar