Logo
TGCATALOG
Catalog Collections Blog
Pythonist's Library: Python Django Flask

Pythonist's Library: Python Django Flask

Everything useful for Python developers: Django, Flask and libraries.

No ratings
1,940
27.10.2026
1,940
27.10.2026
No ratings
1,940
27.10.2026
Safe redirect via bot
О канале

Everything useful for Python developers: Django, Flask and libraries.

Подписчиков 37,100
Тематика IT
Язык English
Ссылка t.me/pyproglib
Description

Comprehensive channel for Pythonists. Contains selections of libraries, guides on Django and Flask, code examples and tips. Everything most needed in one place for efficient work and learning web development in Python.

Latest posts

Pythonist's Library: Python Django Flask
Pythonist's Library: 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 клиент, кэш, пул соединений) — нет. 📍 Навигация: Вакансии • Задачи • Собесы Библиотека питониста #буст
Pythonist's Library: Python Django Flask
FAQ

Open Pythonist's Library: Python Django Flask in Telegram and press the Start button. No separate registration is required.

Yes. The service is designed to be straightforward: open the resource, follow the on-screen instructions and start using it.

No. You can use Pythonist's Library: Python Django Flask directly in Telegram unless the resource description says otherwise.

Access depends on the resource. Check the current information in Telegram after opening Pythonist's Library: Python Django Flask.

The exact features depend on the resource. Open Pythonist's Library: Python Django Flask to see its current functions, content and access conditions.
Subscriber dynamics
+-0.6% last 30 days
Current
37,100
Month ago
37,335
Average growth
+-8 / day
Updated
1 day ago

Reviews for channel Pythonist's Library: Python Django Flask

Log in to leave a review

Only registered users can share their opinion.

No reviews yet

Be the first to share your impression of this resource!

Similar resources

Loading
Switch to Light Theme
Home Catalog Collections Blog Login