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

Поділитися
Вставка
  • Опубліковано 27 вер 2024
  • Для того, чтобы ещё больше облегчить себе жизнь программисты придумали такую штуку как ORM. Теперь взаимодействовать с базой данных стало значительно удобнее и легче. Давай рассмотрим этот инструмент на примере Python модуля Peewee
    • База данных SQLite в P... - База данных SQLite в Python. Создание БД, вставка в БД | Базовый курс. Программирование на Python
    • База данных SQLite в P... - База данных SQLite в Python. Выборка, связь таблиц #2 | Базовый курс. Программирование на Python
    peewee.readthe... - официальная документация к модулю Peewee
    #Python #peewee #ORM #database #программирование

КОМЕНТАРІ • 45

  • @ИванИванов-н9т9ъ
    @ИванИванов-н9т9ъ 3 роки тому +8

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

  • @orazovdidar
    @orazovdidar 6 днів тому

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

  • @eskaakse7363
    @eskaakse7363 5 місяців тому

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

  • @jenjapa
    @jenjapa Рік тому

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

  • @return_1101
    @return_1101 3 роки тому +5

    Очень интиресно.

    • @SweetCoder
      @SweetCoder  3 роки тому

      да, полезная штучка

  • @kirill_spirit_releasement
    @kirill_spirit_releasement 3 роки тому +2

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

  • @igorozhigov3852
    @igorozhigov3852 2 роки тому +1

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

    • @SweetCoder
      @SweetCoder  2 роки тому

      спасибо за отзыв

  • @louispython8215
    @louispython8215 3 роки тому +10

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

    • @SweetCoder
      @SweetCoder  3 роки тому +1

      спасибо за отзыв

  • @sergey5987
    @sergey5987 3 роки тому +2

    Лайк, подписка! Спасибо

    • @SweetCoder
      @SweetCoder  3 роки тому

      на здоровье 👍

  • @rinatyagafarov5328
    @rinatyagafarov5328 6 місяців тому

    Благодарю за видео!

  • @maksych8690
    @maksych8690 3 роки тому +5

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

    • @maksych8690
      @maksych8690 3 роки тому +1

      Вот пример метакласа:
      class MetaBase(type):
      pass
      class Base(metaclass=MetaBase):
      pass

    • @SweetCoder
      @SweetCoder  3 роки тому +6

      всё верно: metaclass и class Meta - не одно и то же. действительно, нужно было выразиться более конкретно

  • @davidigor8042
    @davidigor8042 10 місяців тому

    👍👍 super informative

  • @denissavast
    @denissavast 2 роки тому

    Молодец, успехов!!!

  • @thepeint2241
    @thepeint2241 Рік тому

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

  • @danstep3562
    @danstep3562 4 місяці тому

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

  • @sergeybelik3926
    @sergeybelik3926 2 роки тому

    Спасибо.

  • @takiekakmi7532
    @takiekakmi7532 3 роки тому +1

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

    • @SweetCoder
      @SweetCoder  3 роки тому +1

      в любой ситуации нервничать не нужно. хладнокровие наше всё

  • @искандерфайзуллоев-ф4я
    @искандерфайзуллоев-ф4я 10 місяців тому

    А как подключиться к серверу?

  • @PROswimming
    @PROswimming 2 роки тому +1

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

    • @SweetCoder
      @SweetCoder  2 роки тому

      модуль models - это не модуль для установки из сторонних репозиториев. в данном видео - это файл models.py, созданный рядом с основным файлом программы и импортированный в него. отсюда же и ошибка из второго пункта. создаём файл models.py, помещаем в него модели, а затем импортируем его в основной файл (строка 2)

    • @PROswimming
      @PROswimming 2 роки тому

      @@SweetCoder благодарю вас

  • @sweetdreams9239
    @sweetdreams9239 2 роки тому

    колокольчики, чувак ты где?

  • @55sintez
    @55sintez 3 роки тому +1

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

    • @SweetCoder
      @SweetCoder  3 роки тому

      да, есть такой нюанс

  • @killerix_fx
    @killerix_fx Рік тому +2

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

  • @ЯрославШмелев-з7ъ
    @ЯрославШмелев-з7ъ 3 роки тому +3

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

    • @SweetCoder
      @SweetCoder  3 роки тому

      да, в этом есть рациональное зерно. согласен.

  • @MrKravetz
    @MrKravetz Рік тому

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

  • @michael_dudikov
    @michael_dudikov 3 роки тому +1

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

    • @SweetCoder
      @SweetCoder  3 роки тому

      желаю успехов

    • @michael_dudikov
      @michael_dudikov 3 роки тому +1

      @@SweetCoder а если не получится, к Вам можно обратиться?)

    • @SweetCoder
      @SweetCoder  3 роки тому

      @@michael_dudikov та можно, только я не понимаю, что означает "не получится"

    • @michael_dudikov
      @michael_dudikov 3 роки тому

      @@SweetCoder уже голова болит от этого бота и баз данных, я же новичек)

  • @sonhikim8694
    @sonhikim8694 Рік тому

    у меня записывает по 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 = ['мужчина','женщина','семья с детьми','семья без детей', 'коллектив мужчин','коллектив женщин','смешанный коллектив','студенты','студентки']
    Nanimatel.insert_many(Nanimatels).execute()