ru
Feedback

Не попадитесь на канал ботавода! Telemetrio находит и помечает такие каналы 👉 Хотите видеть метку — оформите подписку

Django Python

Django Python

Открыть в Telegram
6 566
Подписчики
+324 часа
-97 дней
-4030 дней

Загружаем данные

Привлечение подписчиков
нояб. '26
ноябрь '26
+20
в 0 каналах
октябрь '26
+68
в 0 каналах
Get PRO
сентябрь '26
+81
в 0 каналах
Get PRO
август '26
+64
в 0 каналах
Get PRO
июль '26
+53
в 0 каналах
Get PRO
июнь '26
+30
в 0 каналах
Get PRO
май '26
+38
в 0 каналах
Get PRO
апрель '26
+41
в 0 каналах
Get PRO
март '26
+53
в 0 каналах
Get PRO
февраль '26
+56
в 0 каналах
Get PRO
январь '26
+54
в 0 каналах
Get PRO
декабрь '25
+59
в 0 каналах
Get PRO
ноябрь '25
+127
в 1 каналах
Get PRO
октябрь '25
+98
в 0 каналах
Get PRO
сентябрь '25
+122
в 1 каналах
Get PRO
август '25
+86
в 0 каналах
Get PRO
июль '25
+356
в 0 каналах
Get PRO
июнь '25
+108
в 0 каналах
Get PRO
май '25
+89
в 0 каналах
Get PRO
апрель '25
+124
в 0 каналах
Get PRO
март '25
+107
в 0 каналах
Get PRO
февраль '25
+186
в 0 каналах
Get PRO
январь '25
+233
в 1 каналах
Get PRO
декабрь '24
+274
в 1 каналах
Get PRO
ноябрь '24
+243
в 0 каналах
Get PRO
октябрь '24
+371
в 0 каналах
Get PRO
сентябрь '24
+284
в 0 каналах
Get PRO
август '24
+318
в 0 каналах
Get PRO
июль '24
+375
в 0 каналах
Get PRO
июнь '24
+417
в 1 каналах
Get PRO
май '24
+293
в 0 каналах
Get PRO
апрель '24
+276
в 1 каналах
Get PRO
март '24
+366
в 0 каналах
Get PRO
февраль '24
+609
в 0 каналах
Get PRO
январь '24
+372
в 0 каналах
Get PRO
декабрь '23
+267
в 0 каналах
Get PRO
ноябрь '23
+184
в 0 каналах
Get PRO
октябрь '23
+182
в 0 каналах
Get PRO
сентябрь '23
+472
в 0 каналах
Get PRO
август '23
+530
в 0 каналах
Get PRO
июль '23
+209
в 0 каналах
Get PRO
июнь '23
+291
в 0 каналах
Get PRO
май '23
+75
в 0 каналах
Get PRO
апрель '23
+61
в 0 каналах
Get PRO
март '23
+89
в 0 каналах
Get PRO
февраль '23
+59
в 0 каналах
Get PRO
январь '23
+118
в 0 каналах
Get PRO
декабрь '22
+92
в 0 каналах
Get PRO
ноябрь '22
+162
в 0 каналах
Get PRO
октябрь '22
+285
в 0 каналах
Get PRO
сентябрь '22
+292
в 0 каналах
Get PRO
август '22
+95
в 0 каналах
Get PRO
июль '22
+103
в 0 каналах
Get PRO
июнь '22
+114
в 0 каналах
Get PRO
май '22
+167
в 0 каналах
Get PRO
апрель '22
+145
в 0 каналах
Get PRO
март '22
+185
в 0 каналах
Get PRO
февраль '22
+113
в 0 каналах
Get PRO
январь '22
+83
в 0 каналах
Get PRO
декабрь '21
+48
в 0 каналах
Get PRO
ноябрь '21
+612
в 0 каналах
Get PRO
октябрь '21
+36
в 0 каналах
Get PRO
сентябрь '21
+37
в 0 каналах
Get PRO
август '21
+56
в 0 каналах
Get PRO
июль '21
+43
в 0 каналах
Get PRO
июнь '21
+30
в 0 каналах
Get PRO
май '21
+15
в 0 каналах
Get PRO
апрель '21
+38
в 0 каналах
Get PRO
март '21
+22
в 0 каналах
Get PRO
февраль '21
+19
в 0 каналах
Get PRO
январь '21
+88
в 0 каналах
Get PRO
декабрь '20
+1 028
в 0 каналах
Дата
Привлечение подписчиков
Упоминания
Каналы
15 ноября0
14 ноября+3
13 ноября+1
12 ноября+3
11 ноября+1
10 ноября+3
09 ноября0
08 ноября0
07 ноября0
06 ноября+2
05 ноября+3
04 ноября+3
03 ноября0
02 ноября+1
01 ноября0
Посты канала
REST API для Django-модели одним декоратором Добавляешь @expose() к модели, подключаешь роутер к Django Ninja через mount(api) и получаешь CRUD-эндпоинты, фильтры Django ORM, пагинацию и документацию OpenAPI. Удобно, если нужно быстро собрать API для прототипа или внутреннего инструмента. Важная деталь: по умолчанию @expose() открывает поля модели и операции записи без аутентификации. Для публичного API стоит явно задать допустимые методы, поля и фильтры и настроить аутентификацию в NinjaAPI. Пакет требует Python 3.14+. GitHub: https://github.com/swarfte/django-ninja-expose PyPI: https://pypi.org/project/django-ninja-expose/

2
Одна правка документа перегрузила PostgreSQL. Как в Django переделали кеш Команда Джонни Метца хранила в Redis готовый список документов для каждого пользователя. Когда крупный клиент изменил одну общую запись, обработчик сбросил кеш тысяч пользователей. Их следующие запросы почти одновременно пошли в PostgreSQL, и API несколько минут работал медленнее. Кеш разделили. Для пользователя хранят только ID доступных ему документов. Каждый документ лежит в Redis в одном экземпляре, а Django забирает нужные записи пачкой через get_many. Поле can_edit вычисляют при сборке ответа с учётом прав конкретного пользователя. Теперь при переименовании документа достаточно удалить один ключ doc:<id>. TTL увеличили до семи дней. Ключи удаляют после коммита через transaction.on_commit: если удалить ключ раньше, параллельный запрос может снова положить в кеш старые данные. При промахе читают из primary, чтобы в кеш не попала устаревшая версия с отстающей реплики. За три месяца внедрения трафик вырос примерно на 40%, средняя задержка упала примерно на 40%, а число запросов к БД в секунду сократилось вдвое. На обычном пике API обслуживает около 1 100 запросов в секунду, доля попаданий в кеш составляет 97%. https://johnnymetz.com/posts/caching-at-scale-in-django/
315
3
Django закрыл 6 уязвимостей безопасности. Среди них SSRF, утечка паролей и раскрытие пользовательских данных 3 ноября команда Django выпустила экстренные обновления безопасности для трёх веток фреймворка: - Django 6.1.3 - Django 6.0.10 - Django 5.2.19 Всего исправлено 6 уязвимостей: одна средней и пять низкой степени серьёзности. Что обнаружили: 1. SSRF через GeoJSON Злоумышленник мог передать вредоносный URL в поле crs геометрии GeoJSON. GDAL обращался к внешнему ресурсу или читал локальные файлы от имени Django-процесса. 2. SSRF через SpatialReference Строковые значения, переданные в SpatialReference и связанные GIS-методы, могли заставить GDAL обращаться к URL или читать файлы на сервере. 3. Утечка приватных данных через кеш UpdateCacheMiddleware и cache_page() могли создавать одинаковые ключи кеша для запросов с отсутствующим и пустым HTTP-заголовком из Vary. В результате один пользователь мог получить закешированный ответ другого. 4. Раскрытие хешей паролей В Django Admin пользователи с правом только на просмотр могли видеть полные хеши паролей при определённых конфигурациях пользовательских моделей. 5. Исчерпание памяти при загрузке файлов MultiPartParser мог полностью буферизовать multipart-файлы с Content-Transfer-Encoding: base64, игнорируя ограничение FILE_UPLOAD_MAX_MEMORY_SIZE. 6. Log Injection Некорректные значения геометрических полей записывались в логи без экранирования управляющих символов. Это позволяло подделывать записи и изменять отображение логов. Что делать разработчикам? Обновить Django до исправленной версии своей ветки. Для GIS-приложений также проверить версию GDAL: полноценная защита от проблемы с SpatialReference требует GDAL 3.9 или новее. Особенно внимательно стоит проверить приложения, принимающие пользовательский GeoJSON, работающие с GIS-данными и использующие кеширование персонализированных ответов. Исходный отчёт: https://www.djangoproject.com/weblog/2026/nov/03/security-releases/
506
4
Django 6.1: загрузка связанных данных по требованию, каскадное удаление силами БД и новая настройка почты. Релиз вышел 5 августа. Три основных изменения: 1. Новые режимы загрузки полей FETCH_PEERS при обращении к незагруженному полю получает данные сразу для объектов из того же QuerySet. Это помогает бороться с N+1: from django.db import models books = Book.objects.fetch_mode(models.FETCH_PEERS) for book in books: print(book.author.name) В этом примере Django выполняет два запроса: за книгами и за их авторами. Режим `FETCH_RAISE` вместо неявного запроса выбрасывает исключение – полезно для обнаружения неожиданных обращений к БД. 2. Удаление на уровне базы Для ForeignKey.on_delete появились `DB_CASCADE`, `DB_SET_NULL` и `DB_SET_DEFAULT`. Логику выполняет сама БД через SQL ON DELETE. Нюанс: `DB_CASCADE` не вызывает сигналы `pre_delete` и `post_delete`. 3. Несколько почтовых бэкендов Настройка `MAILERS` позволяет описывать разные подключения словарём, а при отправке выбирать нужное через using. Перед обновлением проверьте версии БД: нужны PostgreSQL 15+, MySQL 8.4+, MariaDB 10.11+ или SQLite 3.37+. https://www.djangoproject.com/weblog/2026/aug/05/django-61-released/
593
5
Хотите повлиять на Django 6.2? Команда ищет помощь с тестированием и ревью новых возможностей. Django Steering Council опубликовал список изменений, которые хотелось бы подготовить к релизу. Среди крупных: - `CompositeField` – поддержка многоколоночных подзапросов. Здесь нужны именно тесты. - `DEFAULT_PK_FIELD` – настройка поля первичного ключа по умолчанию, например UUID. - Перенос моделей между приложениями. Есть и менее масштабные PR: `QuerySet.executed_queries`, partitioned cookies, поддержка HTTP-метода QUERY и более понятные сообщения отладки CSRF при работе за прокси. Это кандидаты на включение, а не гарантированный состав Django 6.2. Им ещё нужны проверки и доработка. В очереди также более 150 идей. Среди тем для обсуждения – таймауты задач, SRI, import maps и разбор URL баз данных и кешей. Чтобы помочь, необязательно писать новую функцию. Проверка PR на своём проекте, воспроизводимый баг-репорт или аргументированный отзыв тоже двигают релиз вперёд. https://www.djangoproject.com/weblog/2026/oct/19/quarterly-contributor-outreach/
570
6
django-upgrade-report: CLI, который сам скажет, какие зависимости мешают обновить Django и в каком порядке их менять Обновление Django обычно упирается не в сам фреймворк, а в десяток сторонних пакетов, которые ещё не поддерживают новую версию. Этот инструмент отвечает на два вопроса сразу: что блокирует апгрейд и что обновлять первым. Работает так. Читает uv.lock, poetry.lock, pdm.lock, Pipfile.lock, requirements*.txt, pyproject.toml или установленное окружение, включая транзитивные зависимости. Затем спрашивает у PyPI, что каждый пакет заявляет о совместимости: классификаторы Framework :: Django и требования к версии Django. Результат раскладывается по статусам: Blocked, Upgrade first, Upgrade together with Django, Check manually и Ready. Из полезного. Для каждого пакета называется самая старая версия с поддержкой целевого Django, чтобы шаги были маленькими. Если до цели далеко, строит многошаговый путь через LTS или через каждую версию. Проверяет, не потребуется ли более новый Python, умеет работать с монорепозиториями, Wagtail и django CMS. Может печатать команды обновления и конфиги для Renovate и Dependabot, показывает неиспользуемые прямые зависимости и фичи, удалённые из Django, которые ваш код ещё использует. Есть интерактивный TUI, GitHub Action, pre-commit хук и примеры для GitLab CI. Запуск без установки: uvx django-upgrade-report --target 6.1. Форматы вывода: текст, Markdown, JSON и самодостаточный HTML. Для CI есть флаг --fail-on blocked, который возвращает ненулевой код выхода. Код остаётся локально, на PyPI уходят только имена и версии пакетов. Нужен Python 3.10 или новее, сам Django ставить не требуется. Оговорка: отчёт строится по метаданным, которые заявили мейнтейнеры, и не заменяет прогон тестов. Автор советует использовать его в паре с django-upgrade, который переписывает сам код под новые версии. Лицензия MIT. Репозиторий: https://github.com/derblub/django-upgrade-report Источник: https://github.com/derblub/django-upgrade-report https://t.me/ai_machinelearning_big_data
729
7
🔥 Хочешь быстрее расти в IT? Хватит учиться в одиночку Окружение решает больше, чем кажется. Собрал папки и каналы, где можн
🔥 Хочешь быстрее расти в IT? Хватит учиться в одиночку Окружение решает больше, чем кажется. Собрал папки и каналы, где можно быстрее влиться в нужное направление, следить за трендами и не вариться в своём пузыре. AI: t.me/ai_machinelearning_big_data Python: t.me/pythonl Linux: t.me/linuxacademiya Хакинг: t.me/linuxkalii DevOps: t.me/DevOPSitsec Docker: https://t.me/+90Z5TAyfuNU5YmRi Golang: t.me/Golang_google Rust: t.me/rust_code C++: t.me/cpluspluc C#: t.me/csharp_ci Java: t.me/javatg JavaScript: t.me/javascriptv React: t.me/react_tg Frontend: t.me/front PHP: t.me/phpshka Android: t.me/android_its Мобильная разработка: t.me/mobdevelop Базы данных: t.me/sqlhub Data Science: t.me/data_analysis_ml Big Data: t.me/bigdatai Математика: t.me/data_math Физика: t.me/fizmat Kubernetes: t.me/kubernetc GameDev: https://t.me/gamedev Haskell: t.me/haskell_tg Собеседования и карьера: DS собеседования: t.me/machinelearning_interview Python собеседования: t.me/python_job_interview Папка с вакансиями: t.me/addlist/_zyy_jQ_QUsyM2Vi Папка Go разработчика: t.me/addlist/MUtJEeJSxeY2YTFi Папка Python разработчика: t.me/addlist/eEPya-HF6mkxMGIy Папка ML: https://t.me/addlist/2Ls-snqEeytkMDgy Папка Frontend: https://t.me/addlist/mzMMG3RPZhY2M2Iy Полезное сверху: ИТ-мемы: t.me/memes_prog Английский для программистов: t.me/english_forprogrammers ИИ и технологии: t.me/vistehno 954 ГБ open-source курсов: https://t.me/+rKBQEMccAA01MTcy ИТ-книги бесплатно: https://t.me/addlist/BkskQciUW_FhNjEy Max Ai: https://max.ru/ai_machinelearning_big_data Max python: https://max.ru/pythonl ТЕХНО: https://max.ru/vistehno Max Go: https://max.ru/Golang_google Max Linux: https://max.ru/linuxkalii Devops: https://max.ru/DevOPSitsec C#: https://max.ru/csharp_ci C++: https://max.ru/cpluspluc SQL: https://max.ru/sqlhub Java: https://max.ru/javatg Подписывайся на нужные направления и собирай себе ленту, которая реально двигает вперёд.
474
8
django-upgrade-report. Показывает, какие зависимости блокируют апгрейд Django и в каком порядке их обновлять. https://github.com/derblub/django-upgrade-report
606
9
🐍 Какая зависимость держит ваш Django на старой версии? django-upgrade-report читает зависимости проекта, проверяет заявленн
🐍 Какая зависимость держит ваш Django на старой версии? django-upgrade-report читает зависимости проекта, проверяет заявленную совместимость на PyPI и составляет план обновления: - Какие пакеты блокируют переход. - Что можно обновить заранее. - Что нужно обновлять одновременно с Django. - Где потребуется ручная проверка. Поддерживает lock-файлы uv, Poetry, PDM, Pipenv и requirements.txt. Подбирает минимальную подходящую версию пакета, чтобы сократить масштаб изменений. Запуск из папки проекта: uvx django-upgrade-report Отчёт можно сохранить в HTML, Markdown или JSON и подключить к CI. Совместимость оценивается по метаданным пакетов, поэтому тесты проекта всё равно нужны. https://github.com/derblub/django-upgrade-report
694
10
Вопросы на собеседовании Python Senior: 100 вопросов с ответами (2026) Вопросы на собеседовании Python Senior с ответами: 100
Вопросы на собеседовании Python Senior: 100 вопросов с ответами (2026) Вопросы на собеседовании Python Senior с ответами: 100 вопросов и примеры кода — CPython, GIL, asyncio, метаклассы, типизация, производительность, Python 3.14. https://uproger.com/voprosy-na-sobesedovanii-python-senior/
776
11
🔥 Django Q() objects — один из самых полезных инструментов ORM, который многие используют слишком редко Q() позволяет собира
🔥 Django Q() objects — один из самых полезных инструментов ORM, который многие используют слишком редко Q() позволяет собирать сложные условия для WHERE, комбинируя их через AND, OR и NOT. Пример: Pet.objects.filter( Q(last_given_treats__isnull=True) | Q(last_given_treats__lte=timezone.now() - timedelta(days=1)), treats_needed__gt=F("treats_given"), ) Особенно полезно для динамических фильтров: q = Q() for term in search_term.split(): q |= Q(name__icontains=term) Pet.objects.filter(q) Но есть ещё более важный момент. При фильтрации через related models два отдельных .filter() могут привести к двум JOIN и неожиданно изменить смысл запроса. Species.objects.filter( pets__name__icontains="meowy" ).filter( pets__treats_given=0 ) Это уже может искать одну запись по имени, а другую - по количеству treats. Если собрать условия в одном .filter() или через Q(), Django использует один JOIN и проверяет условия на одной и той же связанной записи. Очень полезный приём для сложных QuerySet, динамического поиска и composable business filters. https://www.better-simple.com/django/2026/09/09/nifty-feature-q-objects/
917
12
🔥 Хак в Django: Meta.indexes можно использовать для собственных миграций Оказывается, models.Index в Django можно превратить почти в универсальную migration-операцию. Идея: class CustomMigrationOperation(models.Index): def create_sql(self, model, schema_editor, **kwargs): ... def remove_sql(self, model, schema_editor, **kwargs): ... А затем добавить её прямо в модель: class Meta: indexes = [CustomMigrationOperation()] После этого makemigrations сам подхватит изменение, а migrate выполнит нужный SQL. Почему это работает: Index уже умеет генерировать SQL через create_sql() и remove_sql(). Так можно описывать не только индексы, но и: triggers table comments security labels другие schema-level настройки Автор использовал этот приём для PostgreSQL Anonymizer, чтобы правила анонимизации жили рядом с моделью и автоматически попадали в миграции. Подход довольно hacky, но как способ расширить механизм миграций Django — очень интересный. https://www.better-simple.com/django/2026/09/02/nifty-feature-use-index-for-custom-migrations/
654
13
Нечёткий поиск в Django + PostgreSQL можно сделать намного умнее обычного icontains. В Caktus Group разобрали fuzzy string matching средствами самого PostgreSQL - без отдельного Elasticsearch. Идея проста: вместо точного совпадения искать строки, похожие друг на друга. Для этого в PostgreSQL можно использовать: - pg_trgm - trigram similarity - Django TrigramSimilarity - пороги похожести - GIN/GiST индексы для ускорения поиска Например, пользователь вводит имя с опечаткой, переставляет буквы или пишет только часть слова - а приложение всё равно находит нужную запись. Особенно полезно для поиска по именам, адресам, названиям компаний и любым пользовательским данным, где идеального ввода ждать не стоит. https://www.caktusgroup.com/blog/2026/08/21/fuzzy-string-matching-django-postgresql/
725
14
🐍 Django-разработчикам: `DEBUG=True` в проде опаснее, чем кажется. Это не просто красивые страницы ошибок. При включённом DE
🐍 Django-разработчикам: `DEBUG=True` в проде опаснее, чем кажется. Это не просто красивые страницы ошибок. При включённом DEBUG приложение может раскрывать stack trace, настройки, пути файлов, middleware, URL-паттерны и другие детали окружения. Главная рекомендация - fail closed: DEBUG = False То есть по умолчанию DEBUG всегда выключен, а включается только локально. Даже staging, QA и preview-среды, доступные из интернета, лучше запускать с DEBUG=False. Отдельная ловушка - переменные окружения: DEBUG = os.environ.get("DEBUG", "False") != "False" Здесь DEBUG=false или DEBUG=0 могут неожиданно превратиться в True. Лучше явно парсить boolean или использовать django-environ. Мелкая настройка, которая однажды может спасти production от очень неприятной утечки. https://lincolnloop.com/blog/setting-djangos-debug-safely/ #Python #Django #Backend #Security #DevOps
825
15
🚀 Django 6.1 вышел: меньше магии, больше контроля Новая версия Django приносит улучшения для production-приложений и работы с базой данных. Главное новшество — новый подход к загрузке данных моделей. Теперь можно контролировать, когда Django делает дополнительные запросы: from django.db import models books = Book.objects.fetch_mode( models.FETCH_PEERS ) Это помогает бороться с проблемой N+1 запросов и лучше контролировать нагрузку на БД. Новые режимы: - FETCH_ONE — загружать данные только для текущего объекта; - FETCH_PEERS — догружать данные сразу для группы объектов; - RAISE — запрещать неожиданные запросы и ловить проблемы заранее. Также в Django 6.1: - поддержка Python 3.12, 3.13 и 3.14; - PostgreSQL 15+; - MySQL 8.4+; - MariaDB 10.11+; - улучшения cache и внутренних механизмов. Главная идея релиза: Django всё меньше скрывает стоимость операций и даёт разработчикам больше контроля над тем, что происходит под капотом. Подробнее: https://www.djangoproject.com/weblog/2026/aug/05/django-61-released/
812
16
⚡️ django-orjson ускоряет работу Django с JSON Adam Johnson выпустил библиотеку django-orjson с готовыми заменами стандартных JSON-компонентов Django и Django REST Framework. В основе лежит написанный на Rust orjson: - сериализация до 10 раз быстрее; - десериализация примерно в 2 раза быстрее. Поддерживаются: - JsonResponse и тестовый клиент; - json_script; - сериализаторы, сессии и signing; - компоненты Django REST Framework. Пакет протестирован на поддерживаемых версиях Python и Django, заявлено 100% покрытие ветвей. Также обсуждается подключаемый JSON-бэкенд для самого Django. Тогда стандартный json можно будет заменить на orjson централизованно, без изменения импортов по всему проекту. https://adamj.eu/tech/2026/07/15/introducing-django-orjson/
923
17
Wagtail как Django admin на стероидах Хороший разбор для Django-разработчиков: Wagtail можно использовать не только как CMS,
Wagtail как Django admin на стероидах Хороший разбор для Django-разработчиков: Wagtail можно использовать не только как CMS, но и как более удобную админку для обычных Django-моделей. Смысл простой: Django admin быстро даёт UI вокруг моделей, но кастомизация часто превращается в боль. Wagtail даёт более современный интерфейс, нормальную работу с полями, группировку через panels, роли, permissions, rich text, media library, versioning и редакторские workflow. При этом не нужно переписывать проект под CMS-логику. Wagtail ставится как обычный Django-пакет, добавляется в INSTALLED_APPS, подключается в urls.py, а бизнес-логика, views, forms и templates остаются обычными Django. Самый практичный случай использования : взять существующий admin.py, перенести модели в Wagtail snippets и постепенно заменить старую админку там, где нужен интерфейс, который не стыдно показать клиенту. Для внутренних тулзов, CRM, backoffice и контентных разделов это может быть намного приятнее, чем бесконечно допиливать стандартный Django admin. https://timonweb.com/wagtail/wagtail-as-django-admin-on-steroids/
861
18
Вышел Django 6.0. Релиз получился не про косметику, а про вещи, которые давно просились в core. Главное - встроенная поддержк
Вышел Django 6.0. Релиз получился не про косметику, а про вещи, которые давно просились в core. Главное - встроенная поддержка Content Security Policy. Теперь CSP можно настраивать прямо в Django через middleware, context processor и настройки SECURE_CSP / SECURE_CSP_REPORT_ONLY. Это упрощает защиту от XSS и content injection без отдельного пакета. Второе важное изменение - template partials. В шаблонах появились {% partialdef %} и {% partial %}. Можно описывать небольшие переиспользуемые фрагменты прямо внутри template-файла, а не дробить всё на отдельные include. Третье - встроенный Tasks framework. Django теперь умеет описывать и ставить фоновые задачи в очередь. Но важно: воркер в комплект не входит. Запуск задач всё равно остаётся за внешним процессом или инфраструктурой. Ещё из полезного: • поддержка Python 3.12, 3.13 и 3.14 • современный Python email API • AsyncPaginator • StringAgg теперь не только для PostgreSQL • forloop.length в шаблонах • DEFAULT_AUTO_FIELD теперь по умолчанию BigAutoField Перед обновлением стоит внимательно пройтись по breaking changes: Python ниже 3.12 больше не поддерживается, MariaDB 10.5 тоже выпала, а часть email API и ORM-кастомизаций может потребовать правок. Документация: https://docs.djangoproject.com/en/6.0/releases/6.0/
942
19
🖥 GitHub Pages можно пересобрать почти на голом Python. Автор показал, как сделать лёгкую платформу для хостинга статических
🖥 GitHub Pages можно пересобрать почти на голом Python. Автор показал, как сделать лёгкую платформу для хостинга статических сайтов без фреймворков и тяжёлой инфраструктуры. Только стандартная библиотека Python. Идея простая: • http.server отдаёт статические файлы • небольшой Python-код добавляет логику деплоя • автоматизация обновляет сайт после изменений • HTTPS можно прикрутить без отдельного большого стека Главный кайф не в том, чтобы «убить GitHub Pages», а в том, чтобы понять механику под капотом. Статический хостинг - это не магия. Это файловая раздача, маршруты, деплой, сертификаты и немного аккуратной автоматизации. Хороший материал для тех, кто хочет лучше понимать web-инфраструктуру, а не просто нажимать кнопку Deploy. https://blog.klemek.fr/articles/2026-06-14/
829
20
🐍 Python Roadmap 2026: наконец-то полноценная актуальная карта изучения Python, а не список ссылок «разберись сам» На GitHub
🐍 Python Roadmap 2026: наконец-то полноценная актуальная карта изучения Python, а не список ссылок «разберись сам» На GitHub выложили большой русскоязычный роадмап по Python на 2026 год - от первых скриптов до уровня Middle+/Senior. Маршрут собран под современный Python: - Python 3.13+ - free-threaded mode без GIL - JIT - uv вместо боли с pip/venv/poetry - ruff, pyright, pytest, hypothesis - async-first подход - типизация - CPython внутри - web, базы, ML/AI, DevOps и архитектура В роадмапе есть нормальная последовательность: сначала окружение и база, потом идиомы, ООП, типы, стандартная библиотека, асинхронность, тестирование, внутренности CPython, web, базы данных, AI-направление, продакшн и архитектура. Отдельный плюс - практический формат. На каждом этапе есть задачи, чеклисты, примеры кода и бесплатные ресурсы. То есть это не мотивационная простыня, а маршрут, по которому реально можно идти несколько месяцев и видеть прогресс. Для новичков - понятный путь без хаоса. Для джунов - способ закрыть дыры. Для тех, кто уже пишет на Python - хороший чеклист, чтобы понять, где ты всё ещё плаваешь. Python в 2026 году - это tooling, типы, async, инфраструктура, AI и продакшн-дисциплина. И этот роадмап как раз про такой Python. https://github.com/justxor/pythonroamap2026
894