База данных SQLite в Python. ORM, peewee #3 | Базовый курс. Программирование на Python

preview_player
Показать описание
Для того, чтобы ещё больше облегчить себе жизнь программисты придумали такую штуку как ORM. Теперь взаимодействовать с базой данных стало значительно удобнее и легче. Давай рассмотрим этот инструмент на примере Python модуля Peewee

#Python #peewee #ORM #database #программирование
Рекомендации по теме
Комментарии
Автор

Спасибо за ролик, интересно было в перерывах ознакомиться с этой библиотекой в общих чертах.
Но на 6:40 стоит сделать важное замечание, что класс Meta, который мы указываем внутри нашей модели, не имеет ничего общего с метаклассами в Python. Метакласс в Python - это класс, экземплярами которого являются классы. И также, его особенностью помимо этого является то, что он наследуется от type. А в данном примере (как и с классами Meta в моделях Django, к примеру) это класс с метаданными. А метаданные служат для дополнительной информации о модели. Так что класс метаданных не имеет ничего общего с метаклассами в Python. Не знаю, писали ли тут ранее об этом, но считаю, что многим людям (особенно начинающим) это может создать путаницу в голове.

killerix_fx
Автор

Отличная подача материала, большое спасибо

orazovdidar
Автор

Самый грамотный подход к обучению респект

eskaakse
Автор

Спасибо, Вы выпускаете очень полезный и очень годный материал. Желаю Вашему каналу процветания и успехов!

louispython
Автор

Спасибо, дружище! Весьма полезный материал.

ИванИванов-нтъ
Автор

Отличное видео и подача, я даже зевать не начал при просмотре. Обязательно гляну все остальное.

jenjapa
Автор

Огромное спасибо! Отличный урок, всё получилось

kirill_spirit_releasement
Автор

Спасибо, дружище! Всё четко и понятно!

igorozhigov
Автор

Спасибо за уроки очень всё интересно, но пока ничего непонятно)) Создал простого телеграм бота, но присоединить его к базе данных пока не могу, чтобы он просто считал сколько банщики сдали на веники по 50 рублей)) Буду стараться, ведь быть программистом не так просто))

michael_dudikov
Автор

Не понимаю почему для name используется тип CharField, когда есть TextField. можете объяснить? спасибо

thepeint
Автор

Все сделал как в видео, но у меня почему-то не создаются поля в таблицах прописанные в классах Expense и Payment. А только поля id прописанные в классе BaseModel. Заранее отвечу что не забыл изменить в классах Expense и Payment родителя с Model на BaseModel.

MrKravetz
Автор

Только маленький комментарий: не хорошо "from some_module import *". Когда код растет, становится крайне не понятно откуда вылезают какие то классы и функци. Explicit is better than implicit

ЯрославШмелев-зъ
Автор

Круть! Но заставил понервничать с упоминанием мета классов 😅 это же не их ты использовал, а просто подклассы...

takiekakmi
Автор

Добрый день, уважаемый блогер! Спасибо за ваши видео!
Я начинающий разработчик и у меня возникло 2 вопроса по вашему видео:
1) Модуль models у меня не устанавливается через командную строку, (первый раз с этим сталкиваюсь, раньше все устанавливаемые модули спокойно устанавливались) мне выдает ошибку No module named 'references' . Пробовал устанавливать модуль 'references', но локально его нет в файлах, а прогуглил - не нашел этого модуля, может плохо гуглил. Полагаю, что из-за этого не устанавливается модуль models(тоже пишет No module named 'models'). А при написании from models import * выдает соответствующую ошибку ModuleNotFounrError: No module named 'models'

2) При разбитии проекта на 2 файла, где в одном логика связи модуля питона с базой данных, а в другом модель построения. У меня не запускается программа логики проекта, выдает ошибку о том, что два файла не взаимосвязаны и не может найти файл моей базы данных из переменной db, чтобы создать в ней таблицу.

Все повторял за вами, но эти моменты не получились, буду признателен, если поможете. Здоровья Вам!

PROswimming
Автор

либо я не могу найти часть 2.5, либо ты действительно не рассказывал про удаление и изменение в базах данных. Уже час ищу объяснение этих операций на питоне

danstep
Автор

Не называйте файлы по имени используемой библиотеки, не сможете её импортировать)

sintez
Автор

Только один нюанс, то не metaclass, а просто клас внутри класа с именем Meta. Метакласы это другое, совсем другое.
В случае с PeeWee как и в Django ORM, class Meta в класе модели это просто клас с дополнительными атрибутами для самого метакласа. Метаклас это в некотором понимании создатель класа.
Вводите в заблуждение аудиторию этим высказыванием.

maksych
Автор

у меня записывает по 1 символу, где указать длину полей?
class BaseModel(Model):
id = PrimaryKeyField(unique=True)
class Meta:
database = db
order_by = 'id'

class List(BaseModel):
name = TextField()

class Nanimatel(List):
class Meta:
db_table = 'nanimatels'
with db:
Nanimatels = ['мужчина', 'женщина', 'семья с детьми', 'семья без детей', 'коллектив мужчин', 'коллектив женщин', 'смешанный коллектив', 'студенты', 'студентки']

sonhikim