В этой статье я расскажу об основных концепциях Apache Kafka , установим локально с помощью docker compose брокер Apache Kafka , создадим тестовый топик , напишем на python первый продьюсер(producer), чтобы публиковать события в этот топик и первый консьюмер(consumer) , чтобы читать из этого топика
Читать далееВ мире веб-разработки обработка и валидация данных играют ключевую роль. Изучая FastAPI я познакомился с замечательной библиотекой Pydantic. В статье "Введение FastAPI" я описал использование Pydantic в связке с SQLAlchemy. А в данной статье мы рассмотрим все аспекты использования Pydantic, начиная от базовых концепций до более продвинутых техник валидации данных в Python
Читать далееПаттерн Singleton - это порождающий паттерн проектирования, который обеспечивает, что у класса есть только один экземпляр, и предоставляет глобальную точку доступа к этому экземпляру.
Это полезно, когда у вас есть ресурсоемкий объект, который должен быть создан только один раз, например, объект для работы с базой данных или настройками приложения.
В Python методы - это мощный инструмент для организации кода и выполнения действий как на уровне объектов, так и на уровне классов. Давайте ближе познакомимся с различными типами методов, доступными в Python.
Читать далееДекораторы - одни из самых часто используемых инструментов в Python и предназначен для добавления дополнительного функционала данной функции без изменения содержимого.
В этой статье я покажу как можно создать и использовать декораторы.
Декораторы и их использование в экосистеме Python
Декоратор — это функция, которая позволяет обернуть другую функцию для расширения её функциональности без непосредственного изменения её кода.
Например , в документации Django вы можете увидеть такой код , где для кеширования вьюхи предлагают использовать декоратор cache_page
Читать далее
Иногда возникает необходимость запустить определенную программу на вашем компьютере или выполнить команды в операционной системе Linux из Python кода
Модуль subprocess
был введен в Python с целью предоставить более мощный и гибкий способ выполнения внешних команд и программ из Python кода. Это произошло в Python 2.4, а затем функциональность была улучшена и расширена в более поздних версиях Python 2.x и Python 3.x.
Если вы создаете новый проект на Django , то я рекомендую использовать пользовательскую модель User, которая расширяется от подкласса AbstractBaseUser вместо встроенной django.contrib.auth.models.User.
Вы конечно , можете этого не делать и использовать другие стратегии , такие как использование прокси-модели , использование связи один-к-одному с пользовательской моделью и создание пользовательской модели с помощью расширения AbstractUser, но по моему личному мнению расширения от подкласса AbstractBaseUser является самым гибким способом, хоть и вначале требует определенных усилий для его реализации.
Если вы разрабатываете свои проекты на Django , то вы легко можете разработать API с помощью замечательной библиотеки Django REST framework(DRF) . Но иногда бывает полезно рассматривать альтернативы и другие технологии , которые специально заточены для реализации данных задач. И при том эти фреймворки учитывают плюсы и минусы существующих технологий и разрабатываются с учетом новых возможностей языка Python.
Одним из таких современных фреймворков , который разрабатывался для построения API является фреймворк FastAPI
Многие начинающие разработчики на Django при работе с Django ORM сталкиваются с проблемой известной как "N+1 запрос". Это неэффективное обращение к базе данных , когда для получения связанных данных для каждого объекта генерируется новый запрос. В предыдущем посте, мы рассмотрели как это проблема решается с помощью использования select_related. Но там мы рассматривали связь многое-к-одному.
А что если у нас связь много-к-многим? Как быть в такой ситуации ?
Читать далее
Django ORM - это прекрасный инструмент , который позволяет нам работать с базой данных и при этом не используя голые запросы. Из-за этого начинающие разработчики допускают ошибки.
Рассмотрим самый распрастраненный и классический случай.
Читать далее
В этой статье мы разберем , что такое GIL. Для чего его реализовали в Python и какие проблемы он решает и какие проблемы он создает и почему его не убирают из Python. Нужно отметить тот факт, что GIL используется наиболее распространенной реализации интепретатора Python , а именно в CPython.
Читать далееDocker - это ПО для автоматизации развёртывания и управления приложениями в средах с поддержкой контейнеризации и бла-бла-бла. Короче , все заумно и ничего неясно. Какая еще контейнеризация и автоматизация управления.
И еще все эти контейнеры , images , volumes и все такое. Короче запутаться можно и погрязнуть в этой теории.
Поэтому мы в данной статье будем на практике исползовать docker и по ходу будем в ней разбираться.
Читать далее
psql - это интерактивная программа , которая позволяет взаимодействовать с сервером базы данных. В этой программе мы можем выполнять операторы SQL и выполнять команды предоставляемые этой программой для изменения объектов баз данных.
Вот некоторые основные команды psql (клиент PostgreSQL) с их описанием и примерами
Читать далее
В этой статье воспользуемся замечательной библиотекой vk_api,
которая позволяет очень легко взаимодействовать с сайтом Вконтакте. И напишем простой скрипт с ее использованием , который выводит список песен , которые есть в ваших аудиозаписях
Pandas - это Python библиотека для обработки и анализа данных. Эта библиотека построена поверх библотеки NumPy, которая написана на С и славится своим быстройдествием.
Подпишитесь на наш список рассылки, чтобы получать обновления из блога