SQLAlchemy: Database connection, raw SQL queries with engine #2

Поделиться
HTML-код
  • Опубликовано: 28 июн 2024
  • 💡 Попробуй онлайн-тренажёр для подготовки к техническому собеседованию: clck.ru/3B5gxT 💡
    Предзапись на курс по поиску работы разработчику и техническим навыкам для Middle: forms.gle/Zw7bPnQvTsfekVH47
    Забирай роадмап изучения самого востребованного фреймворка на Python - FastAPI здесь: t.me/ArtemShumeikoBot
    Все вопросы по SQLAlchemy обсуждаем в телеграм сообществе: t.me/python_community_rus
    Мой телеграм канал о жизни разработчика: t.me/artemshumeiko
    Полезные материалы для бэкендера в моем телеграм боте: t.me/ArtemShumeikoBot?start=eXQ
    Репозиторий на Github с кодом из видео: t.me/artemshumeiko/28
    Поддержать меня и получить ранний доступ к видео можно здесь: boosty.to/artemshumeiko
    Научимся подключаться к Базе данных через engine синхронно и асинхронно, напишем простой SELECT запрос.
    0:00 - Обзор проекта
    1:59 - Адрес для подключения к БД (синхронный и асинхронный)
    3:04 - Создание engine (движка)
    7:33 - Выполняем запрос через engine
    11:03 - Извлекаем ответ БД из итератора Алхимии
    14:33 - Асинхронный движок и запрос

Комментарии • 51

  • @artemshumeiko
    @artemshumeiko  9 месяцев назад +3

    💡 Попробуй онлайн-тренажёр для подготовки к техническому собеседованию: clck.ru/3B5gwP 💡
    Забирай роадмап изучения самого востребованного фреймворка на Python - FastAPI здесь: t.me/ArtemShumeikoBot

  • @user-qp8hg4ds2b
    @user-qp8hg4ds2b 4 месяца назад +1

    Замечательный урок, спасибо Артем!

    • @artemshumeiko
      @artemshumeiko  4 месяца назад

      Спасибо! Рад, что видео оказалось полезным

  • @deez_gainz
    @deez_gainz 8 месяцев назад +3

    Скорость объяснения нравится, достаточно деталей чтобы понять суть и нет цели просто быстро быстро показать как все запустить на коленке (для этого у нас ГПТ уже есть), спасибо!

  • @user-pq7mu7jb5i
    @user-pq7mu7jb5i 14 дней назад

    классс
    У тебя на канале вообще всё есть, чтоб быстренько пробежаться по асинхронному современному бэк стеку питониста.
    спасибо за контент.

  • @user-oc5sd1jw4n
    @user-oc5sd1jw4n 9 месяцев назад +4

    Спасибо за урок, всё получилось, ждём продолжения!

  • @7IdE
    @7IdE 6 месяцев назад

    Шикарный байт на подписку - прям вообще топ.
    Поэтому пришлось сделать не только красную кнопку серой, но и серую кнопку со счетчиком сделал черной, увеличив счетчик. :D
    Ну а объяснения как всегда топовые.

  • @user-ew7xt7dv5k
    @user-ew7xt7dv5k 9 месяцев назад

    Прекрасный курс ожидается!

  • @user-im7if6ps3z
    @user-im7if6ps3z 9 месяцев назад +3

    Ой спасибо, добрый человек, как раз вовремя, нужно подучить алхимию))

  • @w1ntexx281
    @w1ntexx281 3 месяца назад

    спасибо

  • @user-gd4en4ot3u
    @user-gd4en4ot3u 6 месяцев назад

    блин проблема на проблеме, какой драйвер для Майскл асинхронный?

  • @silverguard3638
    @silverguard3638 9 месяцев назад

    О мой отзыв о курсе вставил в видео))) В рамках курса планируется ли еще какой то проект по FastAPI? Например что то более масштабное чем то, что идет в курсе? Своего рода финальный аккорд который скомпилирует все то что мы изучили в курсе + какие то дополнительные фишки?

    • @artemshumeiko
      @artemshumeiko  9 месяцев назад +1

      Да, через несколько уроков мы добавим FastAPI к нашему приложению и посмотрим, как отдавать ответы Алхимии

    • @silverguard3638
      @silverguard3638 9 месяцев назад

      @@artemshumeiko Я про тот что на степике) Я его прошел, понравилось. особенно хорошо легло на предыдущий опыт. Будет ли дополнительное развитие проекта в будущем или новый проект в рамках того курса для рассмотрения каких других аспектов FastAPI? Из всего что смотрел твой курс Самый топовый.

    • @artemshumeiko
      @artemshumeiko  9 месяцев назад

      В курс будут добавляться новые блоки. Они будут развивать и дополнять уже существующий проект бронирования отелей. Новый проект в курсе вряд ли появится. Пока в ближайших планах показать, как развертываются проекты в облаке (типа Yanded Cloud, Selectel)

  • @user-wh7hm2lx7t
    @user-wh7hm2lx7t 9 месяцев назад

    Спасибо за видео)
    Не планируется ли в будущем видео про FastAPI + elasticsearch ?))

  • @montecristo31
    @montecristo31 6 месяцев назад +1

    За курс пасиба, а вот за тему дизреспект, все глаза себе выжиг =(

  • @user-rq5gg2uk3s
    @user-rq5gg2uk3s 4 месяца назад

    Лучший русскоязычный курс, после которого уже можно спокойно ориентироваться в документации, еще и алембик. Бесплатно...

  • @hurricane-rus
    @hurricane-rus 4 месяца назад

    Курс начался интересно, жаль, не все моменты проговорены явно, чтобы повторить за автором.
    О чем надо догадаться, чтобы все заработало в PyCharm, как на видео:
    1) Поднять базу Postgres (реквизиты взять из .env-файла в корне проекта) и подключиться к ней.
    2) PyCharm автоматом не видит .env-файлы - в меню Edit Configurations надо прописать путь до этого файла. (VSCode этот файл видит сам, ему помогать не надо)

    • @montecristo31
      @montecristo31 4 месяца назад

      если незнаешь как поднять базу то для начала тебе стоит изучить sql, а потом уже переходить к orm.

  • @PEPPA_CHAN
    @PEPPA_CHAN 2 месяца назад +2

    Впервые вижу конструкцию (переменная)= (res=)
    Что это значит?

    • @zagorsky1769
      @zagorsky1769 25 дней назад +2

      Это чтобы в f строке показать имя переменной которую выводишь

  • @dmitry1909
    @dmitry1909 9 месяцев назад

    Поивет. Вопросы можно задавать?

    • @artemshumeiko
      @artemshumeiko  9 месяцев назад

      конечно! лучше всего в телеграме: t.me/python_community_rus

  • @user-xu5pp7lk5g
    @user-xu5pp7lk5g 4 месяца назад

    Подскажите пожалуйста, как этот url построить в create_engine? какой пароль вводить, хост и т.д? эту инфу в pgAdmin искать, если да, то где?

    • @artemshumeiko
      @artemshumeiko  3 месяца назад +1

      если база postgres поднята локально, то хост localhost, порт 5432, пароль, юзер и название базы по умолчанию postgres

  • @mixig3809
    @mixig3809 6 месяцев назад

    Доброго всем! Подскажите пожалуйста! Вылезает ошибка подключения к БД (sqlalchemy.exc.OperationalError: (psycopg.OperationalError) connection failed: :1), port 5432 failed: �����: ���� ������ "sa" �� ����������
    )
    Помогло исправить тем, что сам добавил БД с именем SA. Обязательно всегда нужно самому создавать БД в ручную или же это можно как-то сделать автоматически? Спасибо за ответ!

    • @artemshumeiko
      @artemshumeiko  6 месяцев назад

      Не, автоматом создание БД не сделать

    • @mixig3809
      @mixig3809 6 месяцев назад

      @@artemshumeiko грусть печаль! Но почему то, когда на курсе по FastAPI делали первое подключение, то на только что установленном пострескл сработало, и оно само создалось!

    • @dmitriystalin4386
      @dmitriystalin4386 3 месяца назад

      @@mixig3809 разбирайся с логинами и паролями, по умолчанию идут
      DB_HOST=localhost
      DB_PORT=5432
      DB_NAME=postgres
      DB_USER=postgres
      DB_PASS= (ты задавал при установке postgres)

  • @user-lt5un7bz3r
    @user-lt5un7bz3r 5 месяцев назад

    Привет! По фаст апи ты был в пучарме, а тут вскод. Почему?) Попробовал его не так давно, вообще не понравился, остался обратно на пучарме

    • @artemshumeiko
      @artemshumeiko  5 месяцев назад

      Я фуллстак работал почти всегда, поэтому было удобно весь код смотреть сразу в одном проекте (фронт и бэк в соседних вкладках).
      Сейчас обратно на пучарм перешел - уж слишком он хорош. Единственное, что в бесплатной версии нет поддержки Jupyter notebook, что сильно бесит

  • @user-nj7ty4lu9j
    @user-nj7ty4lu9j 3 месяца назад

    А как вообще вот где url у engine, что там писать так и не понял

  • @danilbanan406
    @danilbanan406 6 месяцев назад

    тоесть если pool_size = 5 то всего к нашей бд смогут обращаться только 5 человек?

    • @artemshumeiko
      @artemshumeiko  6 месяцев назад

      нет, подобная настройка (доступ до 5 человек) задается только на уровне субд
      pool_size определяет кол-во соединений к базе, которая создаст алхимия и будет переиспользовать при обращении к базе, чтобы не создавать новые соединения на каждый запрос

  • @pavelkozlov9420
    @pavelkozlov9420 6 месяцев назад

    Привет! Видео огонь, у тебя талант учить) Может кто-то подсказать, почему у меня для подгрузки .env надо костылить вот такую штуку - os.path.join(os.path.dirname(__file__), '..', '.env'), а на видео просто .env. Структура проекта такая-же, IDE - pycharm (он хорошо делает импорты))

    • @artemshumeiko
      @artemshumeiko  6 месяцев назад +1

      запускать проект нужно, находясь в корне проекта (то есть там же, где .env файл) через команду по типу python3 src/main.py
      иначе придется костылить, как вы

    • @xolog1144
      @xolog1144 4 месяца назад +1

      @@artemshumeiko такая же проблема, как и у комментатора. Запускаю из корня в пайчарм, но он не видит .env файл в родительском каталоге
      UPD: помогло в итоге пометить корень проекта как source директорию
      UPD 2: я ещё init файлы добавлял во все подпапки

  • @Wildwarrior100
    @Wildwarrior100 Месяц назад +1

    Ох уж эти танцы с бубнами!! Нельзя вот так взять и с первого раза подключиться.(тут должна быт та самая картинка)

  • @user-ql6lk9uq4x
    @user-ql6lk9uq4x 4 месяца назад

    не рабочий код. начиная с 8:58. не находит конфигурационные файлы .env. бред полный.

  • @yal2983
    @yal2983 9 месяцев назад

    А зачем записывать видео в VS Code, если он даже подсказать импорты нормально не может?

    • @user-zm2fm5mr9d
      @user-zm2fm5mr9d 3 месяца назад

      если настроить нормально то может

  • @user-un2wj7si9j
    @user-un2wj7si9j 3 месяца назад

    Несколько часов билась с ошибкой (psycopg.OperationalError) [Errno -2] Name or service not known.
    Потом решила проверить ссылку с помощью функции make_url из sqlalchemy.engine, сделала print полученной ссылки, и оказалось, что проблема в том, что пароль от postgres содержит символ "@". И программа принимала оставшуюся после @ часть пароля за hostname. 😵‍💫

  • @user-ny9ux9ss8n
    @user-ny9ux9ss8n 6 месяцев назад

    Что ты искал в БД ? 😊

    • @artemshumeiko
      @artemshumeiko  6 месяцев назад

      не понял вопроса

  • @maxmotors9672
    @maxmotors9672 Месяц назад

    Сколько не бился с запуском database.py все время вылетает ошибка создания БД якобы не передаются значения
    DB_HOST: str
    DB_PORT: int
    DB_USER: str
    DB_PASS: str
    DB_NAME: str
    строка model_config = SettingsConfigDict(env_file='.env') не передает значения этих параметров (
    из файла .env , работаю в pycharm, плагины не ставил для работы с .env.
    Временное решение указать явно экземпляру класса Settings
    НО после этого возникла совершенно другая ошибка с которой пока я справиться не могу , если есть возможность подскажите решение или что я делал не так ?
    sqlalchemy.exc.OperationalError: (psycopg.OperationalError) connection failed: :1), port 5432 failed: could not receive data from server: Socket is not connected (0x00002749/10057)
    could not send SSL negotiation packet: Socket is not connected (0x00002749/10057)
    (Background on this error at: sqlalche.me/e/20/e3q8)