В этом руководстве мы познакомим вас с CockroachDB и PonyORM с использованием Python. Мы начнем с обсуждения, что это за технологии, а затем обсудим, как они работают.
Прежде чем мы начнем создавать приложение Python с помощью CockroachDB и PonyORM, давайте разберемся, что это за технологии:
Что такое CockroachDB
CockroachDB - это хорошо масштабируемая распределенная база данных с открытым исходным кодом, в которой используются транзакционные и согласованные хранилища ключей и значений.
CockroachDB очень эффективен как метод обеспечения сохранности и восстановления данных в случае сбоя. В случае сбоев оборудования и программного обеспечения он может сохранить данные, используя строго согласованные репликации своих данных и автоматическое восстановление. Используя SQL API, CockroachDB позволяет запрашивать, структурировать и манипулировать данными с помощью SQL-запросов.
Используя SQL API, CockroachDB предоставляет разработчикам простой переход, поскольку они получают те же знакомые концепции. Поскольку в нем уже есть драйверы SQL для большинства языков программирования, его использование становится более удобным.
Мы рекомендуем вам ознакомиться с документацией CockroachDB для лучшего понимания.
https: // linkfy.to / cockroachDocs
Что такое ПониОРМ
PonyORM - это продвинутый объектно-реляционный преобразователь Python. Хотя существуют и другие ORM Python, такие как Django и SQLAlchemy, PonyORM имеет преимущества, поскольку имеет такие функции, как поддержка составных ключей, автоматическая оптимизация запросов и интуитивно понятный и простой синтаксис запросов.
ORM - это просто инструмент, который позволяет вам работать с базой данных SQL, используя предпочитаемый вами язык программирования. Это дает разработчикам возможность работать с данными в базе данных в виде объектов; следовательно, вы можете использовать ООП для своего языка для работы с данными.
Используя библиотеку PonyORM, мы можем использовать язык Python для работы с данными в CockroachDB в виде объектов реляционной базы данных.
Вы можете использовать документацию PonyORM для справки. Вот ссылка:
https: // документы.пониорм.org / toc.html
Как установить CockroachDB в Linux
Чтобы установить CockroachDB в системах Linux, выполните действия, описанные в этом руководстве, и, в зависимости от конфигурации вашей системы, вам потребуется иметь root-доступ или быть пользователем sudo.
Первый шаг - убедиться, что ваша система обновлена, а затем установить необходимые зависимости. Вот команда для этого:
sudo apt-get update && sudo apt-get upgradesudo apt-get install glibc libncurses tzdata -y
Следующим шагом является загрузка двоичного файла CockroachDB с помощью wget, как показано в приведенной ниже команде:
wget -qO- https: // двоичные файлы.таракан.com / таракан-v20.2.3.linux-amd64.тгзПосле того, как вы загрузили двоичный файл, извлеките файл.
tar -xvf таракан-v20.2.3.linux-amd64.тгзЧтобы запускать команды CockroachDB из любой оболочки, добавьте двоичный файл в свой путь:
cp -i таракан-v20.2.3. linux-amd64 / таракан / usr / bin /Скопируйте необходимые библиотеки:
mkdir -p / usr / lib / тараканcp -i таракан-v20.2.3.Linux-amd64 / библиотека / libgeos.так / usr / lib / таракан /
cp -i таракан-v20.2.3.Linux-amd64 / библиотека / libgeos_c.так / usr / lib / таракан /
После завершения подтвердите, что у вас установлен Cockroach:
какой таракан/ usr / bin / таракан
Запустите временный кластер в памяти, используя команду:
демонстрация таракановВнутри кластера вы можете запустить интерактивную оболочку SQL для ввода действительных SQL-запросов:
ПОКАЗАТЬ ТАБЛИЦЫ;Как установить PonyORM
Чтобы установить PonyORM, у вас должна быть установлена и запущена версия Python. Вы можете использовать как Python 2 (мертвый), так и Python 3.
Используя pip, установите Pony:
pip3 установить пониЧтобы проверить, установлен ли у вас Pony, откройте интерпретатор Python и введите код.
>>> из пони. orm import *Поскольку мы будем использовать PonyORM с CockroachDB, нам нужно установить требуемый драйвер. В этом случае нам необходимо установить psycopg2. Используйте команду pip для установки необходимого драйвера.
pip установить psycopg2-binaryПроверьте, установлен ли у вас Psycopg, используя интерактивный сеанс Python, и введите команду:
импорт psycopgПосле того, как вы все установили, вы можете двигаться дальше и начинать работать с CochroachDB и PonyORM:
Как создать приложение Python с помощью CockroachDB и PonyORM
Чтобы создать приложение на Python, начните с запуска интерактивной оболочки SQL с помощью команды.
таракан SQLСледующим шагом является создание базы данных и пользователя для взаимодействия, что вы можете сделать с помощью команды:
СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ, ЕСЛИ НЕ СУЩЕСТВУЕТ admin;СОЗДАТЬ блог БАЗЫ ДАННЫХ;
Добавьте необходимые привилегии пользователю admin с помощью команды:
ПРЕДОСТАВИТЬ ВСЕ НА БАЗЕ ДАННЫХ блог администратору;\ q;
Теперь о разделе приложений:
В приведенном ниже коде используется PonyORM для взаимодействия с базой данных блога и сопоставления объектов и методов Python с базой данных SQL.
Приведенный ниже код выполняет следующие операции:
из пони.orm import *дата и время импорта
база данных = База данных ()
db_params = dict (поставщик = 'таракан', пользователь = 'админ',
хост = 'localhost', порт = 26257, база данных = 'блог')
класс User (база данных.Юридическое лицо):
first_name = Обязательно (юникод)
blogs = Set («Блог»)
Блог класса (база данных.Юридическое лицо):
username = Обязательно (Пользователь)
title = Обязательно (юникод)
publish_date = Обязательно (datetime.Дата)
category = обязательно (юникод)
set_sql_debug (Истина)
база данных.привязать (** db_params)
база данных.generate_mapping (create_tables = True)
@db_session
def create_blog ():
user = Пользователь (first_name = u "Администратор")
blog = Блог (имя пользователя = пользователь,
title = u "Привет, мир",
publish_date = datetime.дата (2021, 1, 1),
category = u "Черновик")
блоги = [
"пользователь": пользователь,
"title": "Привет, мир 1",
"publish_date": datetime.дата (2021, 1, 2),
«категория»: «Проект»
,
"пользователь": пользователь,
"title": "Привет, мир 2",
"publish_date": datetime.дата (2021, 1, 3),
«категория»: «Проект»
,
"пользователь": пользователь,
"title": "Привет, мир 3",
"publish_date": datetime.дата (2021,1,4),
«категория»: «Проект»
]
для блога в блогах:
b_ = Блог (** блог)
если __name__ == "__main__":
create_blog ()
b_ = Пользователь ("Администратор")
После запуска приложения вы должны увидеть результат, аналогичный показанному ниже:
ПОЛУЧИТЬ НОВОЕ СОЕДИНЕНИЕРАЗБЛОКИРОВАТЬ СОЕДИНЕНИЕ
ПОДКЛЮЧЕНИЕ ОТ МЕСТНОГО БАССЕЙНА
ПЕРЕЙТИ В РЕЖИМ АВТОКОММИТАЦИИ
СОЗДАТЬ ТАБЛИЦУ "пользователь" (
"id" СЕРИЙНЫЙ ПЕРВИЧНЫЙ КЛЮЧ,
ТЕКСТ "first_name" НЕ ПУСТОЙ
)
СОЗДАТЬ ТАБЛИЦУ «блог» (
«Id» СЕРИЙНЫЙ ПЕРВИЧНЫЙ КЛЮЧ,
«Имя пользователя» INT8 NOT NULL,
«Заголовок» ТЕКСТ НЕ ПУСТОЙ,
«Publish_date» DATE NOT NULL,
«Категория» ТЕКСТ НЕ ПУСТОЙ
)
СОЗДАТЬ ИНДЕКС "idx_blog__username" ON "blog" ("имя пользователя")
ALTER TABLE "blog" ДОБАВИТЬ ОГРАНИЧЕНИЕ "fk_blog__username" ИНОСТРАННЫЙ КЛЮЧ ("имя пользователя") ССЫЛКИ "user" ("id") ПРИ КАСКАДНОМ УДАЛЕНИИ
ВЫБЕРИТЕ "блог"."идентификатор", "блог"."имя пользователя", "блог"."название", "блог"."publish_date", "блог"."категория"
ИЗ "блог" "блог"
ГДЕ 0 = 1
ВЫБЕРИТЕ «пользователя»."идентификатор", "пользователь"."имя"
ОТ "пользователь" "пользователь"
ГДЕ 0 = 1
Заключение
Используя приведенное выше приложение, мы создали простое приложение для ведения блога, которое создает пользователя и присваивает блогам имя пользователя. Затем мы добавили данные в базу данных, которую мы можем запросить с помощью SQL-запросов. Хотя приложение простое, оно показывает, как мы можем использовать CockroachDB и PonyORM для создания приложения Python.