Рубрики
Без рубрики

Введение в Peewee – другой Python Orm

Получите практические, реальные навыки Python на наших ресурсах и пути

Автор оригинала: Mike Driscoll.

Я подумал, что было бы интересно попробовать несколько разных реляционных факторов Python Objects (Orms) помимо SQLALCHEMY. Я недавно наткнулся на проект, известный как Peewee Отказ Для этой статьи мы возьмем примеры из моих Учебное пособие SQLALCHEMY И портируйте его, чтобы понять, чтобы увидеть, как это поднимается. Проект Peewee поддерживает SQLite, Postgres и MySQL из коробки, который не такой гибкий, как SQLALCHEMY, но это тоже неплохо. Вы также можете использовать Peewee с веб-каркасом Flask, через удобную Плагин Flask-Peewee Отказ

Во всяком случае, давайте начнем играть с этой забавной маленькой библиотекой!

Начиная

Прежде всего, вам нужно будет пойти, получите пиви. К счастью, это действительно просто, если у вас установлен PIP:

Как только это установлено, мы приятно идти!

Создание базы данных

Создание базы данных с PEEWEE чрезвычайно проста. На самом деле, легче создать базу данных в PEEWEE, чем в SQLALCHEMY. Все, что вам нужно сделать, это позвонить Peewee’s Sqlitedatabase Способ и пропустите путь к файлу или «:« Память: »Если вы хотите база данных в памяти. Давайте создадим базу данных для хранения информации о нашей музыкальной коллекции. Мы создадим две таблицы: артист и альбом.

Этот код довольно прямой. Все, что мы делаем здесь, создают два класса, которые определяют наши таблицы. Мы устанавливаем поля (или столбцы), и мы подключаем базу данных к моделям через вложенный класс META. Затем мы называем класс напрямую для создания таблиц. Это немного странно, так как вы обычно не называете класс напрямую, но вместо этого создаете экземпляр класса. Однако это рекомендуемая процедура в соответствии с PEEWee’s Документация И это работает довольно хорошо. Теперь мы готовы узнать, как добавить некоторые данные в нашу базу данных.

Как вставить/добавить данные в свои таблицы

Вставка данных в нашу базу данных доказывает также довольно простую. Давайте посмотрим:

Здесь мы называем класс создать Способ добавить полосу или запись. Класс поддерживает insert_many Способ тоже, но всякий раз, когда я пытался сохранить данные через Сохранить () Метод, я получил OperationalError сообщение. Если вы случайно выясните, как это сделать, опустите мне строку в комментарии, и я обновит эту статью. Как обходной путь, я только что запланировал список словарей и добавил записи таким образом.

Обновить : Автор Пиви вернулся ко мне на Reddit И дал мне это решение для добавления многих записей одновременно:

Теперь мы готовы узнать, как изменить записи в базе данных!

Использование основных запросов для модификации записей с помощью PEEWEE

Изменение ваших записей является довольно распространенным случаем в мире базы данных. Проект PEEWEE делает модификацию ваших данных довольно легко. Вот какой-то код, чтобы продемонстрировать как:

По сути, мы просто должны запрашивать таблицы, чтобы сделать художник или альбом, который мы хотим изменить. Первые два запроса делают то же самое, но один короче другой. Это потому, что PEEWEE обеспечивает метод ярлыка для выполнения запросов. На самом деле изменить запись, мы просто устанавливаем свойства возвращенного объекта на что-то еще. В этом случае мы изменили имя группы от «KUTLEST» на «Beach Boys».

Последний запрос демонстрирует, как создать присоединение SQL, которое позволяет нам получить совпадение на двух таблицах. Это отлично, если вы случитесь с собственными двумя компакт-дисками с тем же титулом, но вы хотите, чтобы запрос вернуть альбом, связанный с группой под названием «NewsBoys».

Эти запросы немного трудно следовать, поэтому вы можете сломать их на мелкие кусочки. Вот один пример:

Это легче следовать и отлаживать. Вы можете использовать аналогичный трюк с запросами SQLALCHEMY.

Как удалить записи в Peewee

Удаление записи из таблицы в Peewee принимает очень мало код. Проверьте это:

Все, что нам нужно было сделать, это запрос для записи, которую мы хотели удалить. Как только мы имели экземпляр, мы только что назвали его delete_instance метод и что удалили запись. Это действительно так просто!

Упаковка

Проект Peewee довольно крутой. Самым большим недостатком является ограниченное количество базы данных, которые он поддерживает. Однако проект проще в использовании, чем SQLALCHEMY, который я думаю, удивительно. Документация проекта Peewee довольно хороша и стоит читать, чтобы понять все другие функции, которые не охватываются в этом руководстве. Дайте это попробовать и посмотри, что вы думаете!

Дополнительные ресурсы