📦 Как найти нужный пакет на PyPI
|
Функциональность поиска и фильтрации на PyPI оставляет желать лучшего: пакетов там множество, названия у многих похожи, метаданные зачастую заполнены некорректно. Если название искомой библиотеки состоит из 3–4 букв, результаты поиска займут несколько страниц. В этом случае на помощь придет поисковик PyPI Scout, который понимает запросы в свободной форме. |
Результат поиска по запросу «a chart library for Django» |
СУБД SQLite входит в стандартную поставку Python, бесшовно интегрируется со всеми популярными веб-фреймворками (Django, Flask, DRF, Django Ninja) и прекрасно подходит для использования в любых сценариях, где требуется легковесная, но мощная база данных – включая встраиваемые системы, веб- и мобильные приложения. Главный разработчик SQLite, Ричард Хипп, в недавней лекции рассказал об уникальных возможностях и особенностях работы этой миниатюрной СУБД: |
- SQLite – встраиваемая база данных, которая не требует отдельного сервера. Она хранится в одном файле, работает как часть приложения (без дополнительных сервисов или демонов), не требует административных настроек и не использует никаких внешних зависимостей.
- Несмотря на название Lite, SQLite поддерживает большие базы данных (до 281 ТБ) и сложные запросы. Высокая производительность обеспечивается встроенным оптимизатором запросов, эффективным использованием памяти через страничный кэш и оптимизированными алгоритмами соединения таблиц.
- Использует B-деревья для хранения данных и индексов.
- Отличается устойчивостью к сбоям и повреждениям данных – поддерживает атомарные транзакции и восстановление с помощью журнала отката или упреждающей записи.
- Имеет встроенную виртуальную машину для выполнения SQL-запросов.
- Поддерживает параллельное чтение и одновременную запись.
|
🤖 Как написать персептрон с нуля
|
В этом видео подробно объясняются принципы работы искусственной нейронной сети и шаг за шагом разбирается процесс разработки и обучения персептрона. Никаких фреймворков – только Python и математика: |
- Автор объясняет, что персептрон имеет входы и выходы, подобно математической функции, и рассказывает о концепции функции-аппроксиматора.
- На примере простой задачи предсказания чисел показано, как обучается перcептрон. Обсуждаются понятия весов, градиентный спуск и функция потерь, обратное распространение ошибки.
- Продемонстрировано, как можно усложнить и улучшить модель с помощью смещения.
| 🔡 Как сделать приложение с CLI-интерфейсом
|
Самый простой и удобный способ создания интерфейса командной строки обеспечивает библиотека Click. Она предоставляет набор всех нужных инструментов для разработки CLI-приложений и минимизирует объем необходимого кода. Быстрый старт с Click показан в этом видео – на примере создания CLI-приложения для управления заметками. Автор подробно объясняет процесс создания CLI и демонстрирует, как использовать Click для добавления команд и опций, а также обработки аргументов. Кроме того, рассматриваются вопросы конфигурации и использования контекста для хранения состояния приложения. |
⚛️ Чем заменить React, Redux, Redux Saga и MaterialUI при создании фронтенда для Django-приложения
|
Для разработки фронтенда интерактивных приложений чаще всего используют React – возможностей шаблонизатора Django для этого не хватает. Проблема в том, что одним React дело не ограничивается – он используется в связке с дополнительными инструментами, и знаний рядового Django-разработчика для такой задачи, как правило, недостаточно. Кроме того, это просто тяжело – постоянно переключаться с одного инструмента на другой, ведь для создания фронтенда на React нужно использовать: |
- Саму библиотеку React.
- Redux – библиотеку для управления состоянием приложения.
- Redux Saga – библиотеку для упрощения/улучшения сайд-эффектов.
- MaterialUI – библиотеку UI-компонентов.
|
Однако опыт автора показывает, что всех этих сложностей можно избежать, если использовать HTMX и Alpine.js, которые прекрасно работают в шаблонах Django. HTMX – это небольшая JS-библиотека, которая позволяет добавлять SPA-подобное поведение к обычному HTML с использованием HTML-атрибутов. Alpine.js, в свою очередь, помогает управлять состоянием фронтенда – также с использованием HTML-атрибутов. Результат симбиоза Django с HTMX и Alpine.js впечатляет: |
- Вся логика обрабатывается на стороне сервера, в Django.
- Использование HTMX и AlpineJS в шаблонах помогает писать код, отвечающий всем стандартам доступности.
- HTMX и AlpineJS очень компактны, поэтому клиенту не нужно загружать большие объемы данных для базовой функциональности.
- HTMX и AlpineJS отличаются очень скромным использованием ресурсов – приложение будет отлично работать на устаревших и маломощных устройствах.
|
Dishka – внедрение зависимостей
|
Внедрение зависимостей – механизм, который позволяет сделать компоненты программы слабосвязанными, а всю программу в целом более гибкой, адаптируемой и расширяемой. Вместо того, чтобы объект сам создавал или искал свои зависимости (другие объекты, которые ему нужны для работы), объект объявляет, какие зависимости ему нужны, а внешний механизм (DI-фреймворк) их предоставляет. Такой подход обеспечивает: |
- Уменьшение связанности кода – объекты меньше зависят друг от друга.
- Улучшение тестируемости – легче подменять зависимости в тестах.
- Гибкость – можно легко менять реализации зависимостей.
- Повторное использование кода – компоненты становятся более автономными.
|
А Dishka к тому же предоставляет несколько дополнительных преимуществ: |
- Скоупы (области видимости). Позволяет определять разные жизненные циклы для объектов. Например, некоторые объекты могут существовать на протяжении всего времени работы приложения, другие – только в рамках одного запроса.
- Финализация. Поддерживает корректное освобождение ресурсов, например, закрытие соединений с базой данных.
- Модульные провайдеры. Позволяет разделить логику создания зависимостей на несколько классов, что упрощает переиспользование кода.
- Чистые зависимости. Не требует изменения кода самих зависимостей, вся настройка происходит в провайдерах.
|
Momentum – тестирование и анализ бэкенд-кода
|
Momentum – продвинутый инструмент для аудита кода. Он анализирует поведение кода и тестирует его при каждом git push, чтобы убедиться, что код готов к использованию в продакшене. Поведение в контексте Momentum – это определенная задача или функциональность в приложении. Например: |
- Простые действия – удаление документа через API или создание нового пользователя в базе данных.
- Сложные операции – получение данных от стороннего API для проверки статуса платежа.
|
Основная функциональность: | - Анализ кодовой базы – автоматически определяет поведение и функциональность кода, визуализирует зависимости и связи.
- Оценка влияния изменений – определяет «радиус поражения» (точки, которые могут быть затронуты внесенными изменениями). Помогает понять, какие части кода нуждаются в тестировании перед отправкой в продакшн.
- Автоматическая генерация тестов – создает план тестирования для выявленных поведений, генерирует тесты.
- Интеграция с IDE – запускает сгенерированные тесты в локальной среде. Не требует дополнительных конфигураций – работает с существующим окружением.
- Отладка и диагностика – выполняет трассировку стека, анализирует ход исполнения кода и предлагает решения для обнаруженных проблем.
- Интеграция с процессом разработки – работает при каждом git push, обеспечивая постоянный контроль качества кода.
| Posting – работа с HTTP-запросами в терминале
|
Posting – HTTP-клиент, аналогичный Postman или Insomnia, но работающий в терминале. Позволяет отправлять HTTP-запросы, тестировать и отлаживать API. Особенности: |
- Использует YAML-файлы для сохранения запросов.
- Позволяет использовать разные конфигурации для разных сред.
- Подсвечивает синтаксис с помощью tree-sitter.
- Работает через SSH – можно использовать удаленно.
- Может импортировать спецификации OpenAPI.
|
Crawlee – веб-скрапинг и автоматизация браузера
|
Crawlee – библиотека для создания надежных и быстрых скраперов, которые взаимодействуют с веб-страницами максимально естественно, как если бы это делал человек, и благодаря этому не попадают в поле зрение системы защиты от ботов. От простых HTTP-библиотек Crawlee выгодно отличается тем, что предоставляет комплексное решение для скрапинга, а в сравнении со Scrapy выигрывает с точки зрения встроенной поддержки браузерного краулинга и более современного асинхронного подхода. Основная функциональность:
|
- Унифицированный интерфейс для HTTP и браузерного краулинга.
- Автоматическое параллельное выполнение запросов.
- Встроенная ротация прокси и управление сессиями.
- Настраиваемая маршрутизация запросов.
- Постоянная очередь URL для обхода.
- Хранение как табличных данных, так и файлов.
- Поддержка BeautifulSoup и Playwright.
|
Django AI Assistant позволяет легко интегрировать современные языковые модели с Django, что открывает широкие возможности для создания интеллектуальных и интерактивных веб-приложений. С помощью этого фреймворка можно, например, быстро сделать: |
- Чат-бот для рекомендации фильмов.
- Автозаполнение форм в приложении.
- Персонализированные email-напоминания.
- Интерактивный туристический путеводитель.
|
|
|
Понравилась ли вам эта рассылка? |
|
|
Вы получили это письмо, потому что подписались на нашу рассылку. Если вы больше не хотите получать наши письма, нажмите здесь.
|
|
|
|