🎸 Вышел новый релиз Django 5.1
|
В Django 5.1 появились несколько полезных функций: - Тег {% query_string %} упростит модификацию параметров запроса в URL.
- Поддержка пулов соединений для PostgreSQL поможет снизить задержки.
- Новый LoginRequiredMiddleware перенаправит неавторизованные запросы на страницу входа.
- RowRange теперь принимает положительные целые числа для start и отрицательные для end.
- Новый аргумент exclusion в RowRange и ValueRange исключает ряды, группы и привязки из оконных фреймов.
- Новый валидатор DomainNameValidator обеспечивает проверку доменных имен.
|
Пагинацию теперь можно сделать гораздо проще, чем раньше |
Кроме того, разработчики сделали много мелких улучшения в contrib-приложениях, ORM и формах, и удалили большую часть устаревшей функциональности, включая: - Метод BaseUserManager.make_random_password().
- Опцию Meta.index_together для моделей.
- Фильтр шаблона length_is.
- Хэши паролей SHA1PasswordHasher, UnsaltedSHA1PasswordHasher и UnsaltedMD5PasswordHasher.
- Модели CICharField, CIEmailField и CITextField из django.contrib.postgres.
- Методы SimpleTestCase.assertFormsetError() и TransactionTestCase.assertQuerysetEqual().
- Поддержку передачи JSON-строк в JSONField и связанные функции.
- Настройки DEFAULT_FILE_STORAGE и STATICFILES_STORAGE.
- Функцию django.core.files.storage.get_storage_class().
Также были внесены некоторые изменения для повышения доступности – переработаны HTML-теги для лучшей поддержки скринридеров. Подробнее об обновлениях – в документации Django. |
NiceGUI – продвинутый UI-фреймворк: - Одинаково хорошо подходит для создания браузерных и десктопных приложений любого масштаба – от панелей управления автоматизированными/роботизированными системами до сложных GUI с выводом видео, аудио, 3D-графики и всевозможных диаграмм.
- Работает с Jupyter Notebooks.
- Содержит массу готовых UI-элементов – кнопок, переключателей, списков, чекбоксов и т.д. Основной и дополнительные цвета всех элементов можно изменять.
- Имеет встроенный таймер, который может обновлять интерфейс хоть каждые 10 мс.
- Поддерживает SVG, иконки и эмодзи, HTML и Markdown.
- Легко интегрируется в существующие приложения – например, на базе FastAPI.
- Отличается простотой использования. Множество примеров – в репозитории и на сайте проекта.
|
Код NiceGUI и элементы, созданные с его помощью |
🤖💬 Самый простой способ создания собственного чат-бота
| Реализовать проект Chat Wizard смогут даже начинающие разработчики – библиотека Taipy предоставляет практически готовый к использованию фронтенд, который нужно лишь немного оформить с помощью CSS, а библиотека ctransformers обеспечивает взаимодействие с ИИ-моделью, в данном случае – с Mistral-7B-Instruct-v0.1-GGU. Результат – полноценный локальный чат-бот, которого можно использовать в качестве ассистента разработчика, а при необходимости – дополнить нужными компонентами: - Библиотека Taipy использует концепцию состояния (state) для отслеживания изменений в приложении. Это позволяет легко управлять историей беседы, обновлять интерфейс, и не задумываться о тонкостях передачи данных с бэкенда на фронтенд.
- Архитектура приложения отличается гибкостью – можно без всяких сложностей интегрировать любые другие языковые модели или компоненты для обработки текстовых/визуальных данных.
|
Создание чат-бота займет буквально 15 минут |
🆓 Как стать Python-разработчиком бесплатно
|
Войтивайтишник, у которого все получилось, опубликовал на Хабре «Ультимативный гайд по эффективному обучению (для влёта в IT с двух ног)». Основные слагаемые успеха: - Оптимальное соотношение практики и теории – 80% на 20%.
- Интервальные повторения – концепция, непонимание которой приводит к тому, что «95% вкатунов сливаются в первые месяцы». Всю новую информацию нужно повторять через определенные промежутки времени, иначе обучение будет бесполезным – выучил очередную тему, забыл предыдущую.
- Активное вспоминание – пересказывание самому себе всех только что изученных концепций.
- Параллельное изучение нескольких навыков эффективнее, чем поочередное.
- Доскональное изучение концепций, лежащих в основе любого инструмента – обязательно: не стоит изучать фреймворки, не зная толком языка, на которых они основаны.
- Учиться нужно каждый день, причем начинать учебу нужно с 10-минутного повторения того, что изучалось накануне.
- Интенсивный ритм обучения более эффективен, чем размеренный.
- Бесплатные курсы и туториалы на YouTube принесут пользу только в том случае, если их не просто смотреть, а сразу же использовать для написания собственных вариантов кода. Иначе можно безнадежно застрять в «туториальном аду».
|
📜 Полезные статьи и туториалы на Хабре
|
Сложность деплоя веб-приложения на Django или Flask зависит от двух факторов – сложности самого приложения и «дружественности» хостинга по отношению к Python. На дружественных хостингах очень многие вещи уже настроены, и разворачивание приложения занимает несколько минут. На более суровых платформах необходимо установить и вручную настроить не только веб-сервер, но и сервер приложений (типа Gunicorn). В публикации «Фантастически быстрый деплой веб-приложения» рассматривается процесс создания простой стены сообщений на Flask и деплой на один из преднастроенных хостингов – этот вариант оптимально подходит для начинающих разработчиков, проще только установка на pythonanywhere. Для тех, кто не ищет простых решений, мы публиковали туториал по более хардкорному деплою, где все устанавливается и настраивается самостоятельно. Статья «Фоновые асинхронные задачи в FastAPI и их мониторинг»: - Рассказывает о плюсах и минусах 5 самых популярных способов работы с задачами – с помощью FastAPI Background Tasks, ARQ, SAQ, FastStream и Celery.
- Затрагивает менее популярные инструменты – Taskiq, APScheduler, Rocketry.
- На основе тестирования определяет победителя. Спойлер – это FastStream.
В статье «Распознавание капчи при помощи CNN модели» показан пошаговый процесс создания модели, которая уже в первой итерации предсказывает текст капчи с точностью около 70%. В публикации «Алгоритмы разбора результата распознавания рукописного текста для анкет» продемонстрировано подробное решение нетривиальной задачи по распознаванию рукописных анкет, сфотографированных телефоном. Результат – универсальный алгоритм для работы с любыми структурированными документами в любом формате, разрешении и качестве. В качестве фронтенда для такого приложения можно использовать Телеграм. В статье «Создаем безукоризненную автодокументацию кода на Python с помощью Sphinx» показаны: И напоследок – простой способ сделать динамический GitHub-профиль с помощью Python-скрипта и GitHub Actions. |
Этот README обновляется автоматически |
На этом все, увидимся через неделю! |
|
|
Вы получили это письмо, потому что подписались на нашу рассылку. Если вы больше не хотите получать наши письма, нажмите здесь.
|
|
|
|