Уровни изоляции транзакций в Postgresql

03 Май 2023 postgresql

В этой статье мы рассмотрим как в PostgreSQL реализованы уровни изоляции транзакций , какие аномалии допускаются при разных уровнях изоляции , а какие нет. 

Транзакции - это фундаментальное понятие во всех СУБД. Суть транзакции в том, что она объединяет последовательность действий в одну операцию по принципу «всё или ничего».

Транза́кция (англ. transaction) — группа последовательных операций с базой данных, которая представляет собой логическую единицу работы с данными. Транзакция может быть выполнена либо целиком и успешно, соблюдая целостность данных и независимо от параллельно идущих других транзакций, либо не выполнена вообще, и тогда она не должна произвести никакого эффекта.

Стандарт SQL определяет четыре уровня изоляции транзакций:

Читать далее

Python. Бинарный поиск в массиве

20 Янв 2023 python Алгоритмы

В этой статье мы рассмотрим Двоичный (бинарный) поиск - один из классических алгоритмов поиска элемента в отсортированном массиве

Бинарный поиск

 

Читать далее

Django Rest Framework (DRF) - Загрузка файлов

01 Сен 2022 python django

Django Rest Framework (DRF) -  Загрузка файлов 

В этой статье рассмотрим как можно загружать файлы с помощью Django Rest Framework

Рассмотрим самый простой случай. У нас есть модель Post , у которого есть поле preview , куда нужно загружать изображения 

 

 

 

Читать далее

Python словари. Введение и основные методы работы с ними

10 Июл 2022 python

Cловари в Python - это неупорядоченный набор пар "ключ-значение"
Но начиная с версии Python3.7 словари являются упорядоченными и они будут выводиться в том же порядке в каком добавлялиPython словари

Читать далее

Введение SQLAlchemy Core и ORM

09 Июл 2022 sqlalchemy

SQLAlchemy - это инструментарий базы данных(database toolkit) для Python. Он предоставляет все возможности которые нам нужны при работе с реляционными базами данных , но при этом весь код будет написан на Python. Не нужно писать голые запросы специфичные для каждой реляционной базы данных и при этом задумываться об экранировании и об других важных вещах. Вместо этого SQLAlchemy позволяет абстрагироваться от используемой базы данных. Написанный код на Pyhon будет работать прекрасно работать с разными БД(Postgresql, MySql, Sqlite). Если вы на старте проекта используете одну БД , но вам нужно переключиться на другую, то вы можете это сделать безболезненно и с минимальными усилиями.

SQLAlchemy состоит из двух отдельных компонентов, известных как Core и ORM. И при этом ORM(Object Relational Mapper) реализован поверх ядра(Core). 

SQLAlchemy Core и ORM
 

Читать далее

Poetry. Управление зависимостями для проектов на Python

20 Апр 2022 python

Когда мы создаем новый проект на Python , то мы вначале создаем виртуальное окружение.
И когда нам нужны внешние проекты , такие как Django, request и другие библиотеки , то устанавливаем их с помощью pip. В итоге мы формируем файл c зависимостями requirements.txt
Но в последних проектах я для управления зависимостями начал использовать Poetry. 


 

Читать далее

Пишем первую программу на Go

16 Июл 2021 go

В этой статье мы напишем и запустим первую программу на Go
Для начала вы должны устанавить компилятор Go на свой компьютер
Далее создадим директорию helloworld и перейдем в эту директорию.

Читать далее

Django-guardian. Добавляем управление разрешениями на уровне объектов

28 Май 2021 python django

Django-guardian. Добавляем управление разрешениями на уровне объектов

Django-guardian. Добавляем управление разрешениями на уровне объектов

 

 

Читать далее

Django permissions. Управление правами доступа

28 Май 2021 python django

Django предоставляет из коробки систему аутентификации и авторизации(permission) пользователей. Эта система позволяет проверять учетные данные пользователей и определять права доступа для пользователей. Ввод логина и пароля - это аутентификация пользователей , а права доступа на редактирование записей , создание новых и удаление - это уже авторизация. Поэтому,с помощью permissions мы указываем какие действия могут выполнять пользователи на сайте , а к каким запрещен доступ.  Django permissions
 

Читать далее

Python HTTPX . HTTP-клиент нового поколения для Python

08 Май 2021 python

В предыдущей статье мы рассмотрели замечательную библиотеку requests для выполнения HTTP запросов.
Но у данной библиотеки есть один недостаток. Он не поддерживает асинхронные HTTP-запросы. 
В этой статье мы рассмотрим новую замечательную библиотеку на Python , который позволяет реализовывать синхронные и асинхронные HTTP-запросы и благодаря этим возможностям он завоевал большую популярность в Python сообществе
 

Читать далее

Тестирование в Django

05 Май 2021 python django Тестирование

При разработке веб-приложений большинство программистов часто избегают тестирования. Я основном говорю о начинающих программистах.  Да и многие , кто уже довольно долго в этой профессии и которые разрабатывают коммерческие приложения довольно часто избегают тестирования , а многие незнакомы с ней.
В этой статье мы будем рассматривать тестирования для веб-приложений , которые создаются с использованием фреймворка Django.Тестирование в Django

Читать далее

Apache Kafka. Введение для начинающих

25 Апр 2021 python

В этой статье я расскажу об основных концепциях Apache Kafka , установим локально с помощью docker compose брокер Apache Kafka , создадим тестовый топик , напишем на python первый продьюсер(producer), чтобы публиковать события в этот топик и первый консьюмер(consumer) , чтобы читать из этого топика  

Читать далее

Python pydantic. Валидация данных

05 Апр 2021 python

Изучая FastAPI  я познакомился с замечательной библиотекой Pydantic. В документации FastAPI  отмечается, что "FastAPI стоит на плечах гигантов Starlette(асинхронный веб-фреймворк , который занимается работой с web) и Pydantic(который служит для валидации данных). 


В статье "Введение FastAPI" я на реальном примере описал использование Pydantic в связке с SQLAlchemy. А в данной статье мне хочется разобраться с самой библиотекой Pydantic, который используется во многих проектах по всему миру

Читать далее

Python декораторы

07 Мар 2021 python

Декораторы - одни из самых часто используемых инструментов в Python и предназначен для добавления дополнительного функционала данной функции без изменения содержимого.

В этой статье я покажу как можно создать и использовать декораторы.

Декораторы и их использование в экосистеме Python

Декоратор — это функция, которая позволяет обернуть другую функцию для расширения её функциональности без непосредственного изменения её кода.
Например , в документации Django вы можете увидеть такой код , где для кеширования вьюхи предлагают использовать декоратор cache_page

 

Читать далее

Django расширение модели User

23 Янв 2021 django

Если вы создаете новый проект на Django , то я рекомендую использовать  пользовательскую модель User, которая расширяется от подкласса AbstractBaseUser вместо встроенной django.contrib.auth.models.User.  Вы конечно , можете этого не делать и использовать другие стратегии , такие как использование прокси-модели , использование связи один-к-одному с пользовательской моделью и создание пользовательской модели с помощью расширения AbstractUser, но по моему личному мнению расширения от подкласса AbstractBaseUser является самым гибким способом, хоть и вначале требует определенных усилий для его реализации.

Читать далее

Подписка

Подпишитесь на наш список рассылки, чтобы получать обновления из блога

Рубрики

Теги