У вас есть блог на Django и вы хотите , чтобы информация о посте автоматически появлялась бы на вашем телеграм канале. Или у вас на сайте прием заявок или иных событий и вы хотите , чтобы информация об этих заявках и событиях мгновенно появлялась у вас на телеграм-канале.
Это легко реализовать с помощью стандартных средств python, с использованием телеграм бота , который будет посылать сообщения в телеграм-канал.
И в этой статье я пошагово расскажу как это сделать.
Читать далееЗачем нам нужно документировать API ?
Что за такие страшные слова Swagger и OpenApi ?
Каквя между ними разница?
Как легко подключить Swagger документацию к вашим эндпоинтам , реализованных с помощью Django REST Framework(DRF)?
Попробуем об этом разобраться в этой статье.
4 декабря 2023 года состоялся релиз Django 5.0
Django 5.0 поддерживает Python 3.10, 3.11, и 3.12. Поэтому настоятельно рекомендую обновляться на эти версии и идти ногу со временем.
В этой статье мы подробно на примерах рассмотрим новые возможности , которые были добавлены в этой версии.
Python 3.12. Что нового ?
Буквально час тому назад состоялся релиз новой версии Python3.12.0 (финальный релиз) !!!
Основные новые возможности Python 3.12.0 по сравнении с версией Python 3.11
Более гибкий разбор f-строк(More flexible f-string parsing ) , позволяющий множество вещей, ранее запрещенных (PEP 701).
Поддержка протоколов буфера в коде Python (PEP 688).
Новый API для отладки/профилирования (PEP 669).
Поддержка изолированных подинтерпретаторов(subinterpreters) с отдельными GIL (PEP 684).
Еще более улучшенные сообщения об ошибках.Теперь большинство исключений, вызванных, возможно, опечатками, предлагают пользователю рекомендации.
Поддержка профилировщика Linux perf для отображения имен функций Python в трассировках.
Множество крупных и мелких улучшений производительности(например, PEP 709 и поддержка бинарного оптимизатора BOLT), обеспечивающих ожидаемое общее улучшение производительности на уровне 5%.
Django Rest Framework (DRF) - Загрузка файлов
В этой статье рассмотрим как можно загружать файлы с помощью Django Rest Framework
Рассмотрим самый простой случай. У нас есть модель Post , у которого есть поле preview , куда нужно загружать изображения
Читать далее
Cловари в Python - это неупорядоченный набор пар "ключ-значение"
Но начиная с версии Python3.7 словари являются упорядоченными и они будут выводиться в том же порядке в каком добавляли
При разработке нового проекта на Python рекомендуется начинать с создания виртуальной среды, которая изолирует проект от других установленных пакетов на вашей системе. Для добавления внешних зависимостей, таких как Django, requests и других библиотек,я обычно использую инструмент управления пакетами pip Далее для удобства мы формируем файл c зависимостями requirements.txt , который содержит список всех зависимостей проекта.
Но в последних проектах для управления зависимостями я начал использовать Poetry. И в этой статье мне хочется рассказать , что из себя представляет Poetry, как его использовать в своих проектах и какие возможности он предоставляет.
Django-guardian. Добавляем управление разрешениями на уровне объектов
Читать далее
Django предоставляет из коробки систему аутентификации и авторизации(permission) пользователей. Эта система позволяет проверять учетные данные пользователей и определять права доступа для пользователей. Ввод логина и пароля - это аутентификация пользователей , а права доступа на редактирование записей , создание новых и удаление - это уже авторизация. Поэтому,с помощью permissions мы указываем какие действия могут выполнять пользователи на сайте , а к каким запрещен доступ.
В предыдущей статье мы рассмотрели замечательную библиотеку requests для выполнения HTTP запросов.
Но у данной библиотеки есть один недостаток. Он не поддерживает асинхронные HTTP-запросы.
В этой статье мы рассмотрим новую замечательную библиотеку на Python , который позволяет реализовывать синхронные и асинхронные HTTP-запросы и благодаря этим возможностям он завоевал большую популярность в Python сообществе
При разработке веб-приложений большинство программистов часто избегают тестирования. Я основном говорю о начинающих программистах. Да и многие , кто уже довольно долго в этой профессии и которые разрабатывают коммерческие приложения довольно часто избегают тестирования , а многие незнакомы с ней.
В этой статье мы будем рассматривать тестирования для веб-приложений , которые создаются с использованием фреймворка Django.
В этой статье я расскажу об основных концепциях Apache Kafka , установим локально с помощью docker compose брокер Apache Kafka , создадим тестовый топик , напишем на python первый продьюсер(producer), чтобы публиковать события в этот топик и первый консьюмер(consumer) , чтобы читать из этого топика
Читать далееВ мире веб-разработки обработка и валидация данных играют ключевую роль. Изучая FastAPI я познакомился с замечательной библиотекой Pydantic. В статье "Введение FastAPI" я описал использование Pydantic в связке с SQLAlchemy. А в данной статье мы рассмотрим все аспекты использования Pydantic, начиная от базовых концепций до более продвинутых техник валидации данных в Python
Читать далееПаттерн Singleton - это порождающий паттерн проектирования, который обеспечивает, что у класса есть только один экземпляр, и предоставляет глобальную точку доступа к этому экземпляру.
Это полезно, когда у вас есть ресурсоемкий объект, который должен быть создан только один раз, например, объект для работы с базой данных или настройками приложения.
В Python методы - это мощный инструмент для организации кода и выполнения действий как на уровне объектов, так и на уровне классов. Давайте ближе познакомимся с различными типами методов, доступными в Python.
Читать далееДекораторы - одни из самых часто используемых инструментов в Python и предназначен для добавления дополнительного функционала данной функции без изменения содержимого.
В этой статье я покажу как можно создать и использовать декораторы.
Декораторы и их использование в экосистеме Python
Декоратор — это функция, которая позволяет обернуть другую функцию для расширения её функциональности без непосредственного изменения её кода.
Например , в документации Django вы можете увидеть такой код , где для кеширования вьюхи предлагают использовать декоратор cache_page
Читать далее
Если вы создаете новый проект на 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.
Читать далееВ этой статье воспользуемся замечательной библиотекой vk_api,
которая позволяет очень легко взаимодействовать с сайтом Вконтакте. И напишем простой скрипт с ее использованием , который выводит список песен , которые есть в ваших аудиозаписях
Amazon Web Services (AWS)- это облачная платформа, разработанная и поддерживаемая компанией Amazon c 2006 года.
Эта платформа предоставляет огромное количествео сервисов , которые вы можете использовать для решения самых различных задач.
В данной статье мы рассмотрим библиотеку Boto3 , которая предоставляет SDK для работы с AWS с использованием языка программирования Python.
В процессе разработки программ мы часто игнорируем логирование. И для отладки программ мы используем вывод средствами print. И это большая ошибка , так как логирование играет большую роль при разработке надежных программных систем. Так как устранение ошибок производится не только на этапе разработки , но и на этапе продакшена могут возникать неполадки , которые требуют оперативного реагирования и решения. При правильном введении логировани мы можем упростить обнаружение неполадок и оперативное их устранение
Читать далееОтправить html сообщение по почте средствами django очень просто
Читать далееИтератор в Python - это объект , класс которого имеет специальный метод __next__ и метод __iter__ , который возвращает итерируемый объект (в данном случае return self).
Иногда при парсинге страниц нужно получить данные , которые недоступны незарегистрированным пользователям.
Для этого нужно авторизоваться на сайте. И в этой статье я покажу как с помощью замечательной библиотеки requests это реализовать.
В качестве примера попробуем залогиниться на сайте hh.ru.
Как-то мне для моего блога понадобилось подключить текстовый редактор.Выбор пал на CKEditor. Тем более для этого редактора существует замечательный плагин Django-ckeditor
Читать далееКак-то мне понадобилось срочно добавить пост в инстаграмм , а смартфон был в ремонте. Я пользовался веб-версией сайта Инстаграмм, но там не было функциональности , которая позволяла бы загрузить пост.
Читать далееНедавно мне понадобилось экспортировать данные в excel файл.На python это делается очень легко. Поэтому мы чуть усложним пример. Будем скачивать изображения и вставим их Excel файл.
Для создания Excel файла мы будем использовать import xlsxwriter
Читать далееGraphQL - это стандарт объявления структуры данных и способов получения данных, которую Facebook разработал в качестве альтернативы Rest API. В этой статье , мы покажем как с помощью замечательной библиотеки graphene-django легко использовать данную технологию на наших сайтах
Читать далееИногда при работе с базами данных нам приходится группировать результаты. Допустим , нам нужно подсчитать количество изображений для каждого товара или вычислить сумму для всех товаров или найти максимальную зарплату. Все это делается с помощью агрегатных функций и конструкции GROUP BY.
В данной статье рассмотрим , как с помощью Django ORM писать код, который на выходе генерирует SQL код с использованием GROUP BY и агрегатных функций.
Читать далее
Напишем простой паук для обхода данных и сохранением их в MongoDB Для этого мы будем использовать замечательный швейцарский нож как его любят величать в интернете
Читать далееSQLAlchemy — это программная библиотека на языке Python для работы с реляционными СУБД с применением технологии ORM. В данной статье мы рассмотрим , что такое SQLAlchemy , опишем с помощью нее таблицы и реализуем запросы извлечения и записи данных.
Читать далееКак-то мне понадобилось реализовать меню на сайте, где пункты меню брались из базы данных. На сайтах, которые я ранее писал на php это реализовывалось довольной легко, а вот на django я сразу не мог это реализовать. Самый топорный , это конечно же передавать пункты меню в шаблон в каждой вьюхе )) Но погуглив , я понял, что это реализуется довольно легко с помощью пользовательских шаблонных тегов.
Читать далееВ своем проекте я использую замечательную библиотеку для регистрации пользователей django-registration. Так вот мне понадобилось , после регистрации пользователя добавлять его в одну из групп.
Читать далееПодпишитесь на наш список рассылки, чтобы получать обновления из блога