Logo
TGCATALOG
Catálogo Selecciones Blog
Biblioteca de Pythonist: Python Django Flask

Biblioteca de Pythonist: Python Django Flask

Todo lo útil para los desarrolladores de Python: Django, Flask y bibliotecas.

Sin valoraciones
1,939
27.10.2026
1,939
27.10.2026
Sin valoraciones
1,939
27.10.2026
Redirección segura vía bot
О канале

Todo lo útil para los desarrolladores de Python: Django, Flask y bibliotecas.

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

Canal integral para Pythonistas. Contiene selecciones de bibliotecas, guías sobre Django y Flask, ejemplos de código y consejos. Todo lo más necesario en un solo lugar para el trabajo eficiente y el desarrollo de aprendizaje web en Python.

Últimas publicaciones

Biblioteca de Pythonist: Python Django Flask
Biblioteca de Pythonist: 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 клиент, кэш, пул соединений) — нет. 📍 Навигация: Вакансии • Задачи • Собесы Библиотека питониста #буст
Biblioteca de Pythonist: Python Django Flask
Evolución de suscriptores
+-0.6% últimos 30 días
Actuales
37,100
Hace un mes
37,335
Crecimiento medio
+-8 / día
Actualizado
hace 1 día

Reseñas de canal Biblioteca de Pythonist: 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

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