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 - Асинхронный движок и запрос
💡 Попробуй онлайн-тренажёр для подготовки к техническому собеседованию: clck.ru/3B5gwP 💡
Забирай роадмап изучения самого востребованного фреймворка на Python - FastAPI здесь: t.me/ArtemShumeikoBot
Замечательный урок, спасибо Артем!
Спасибо! Рад, что видео оказалось полезным
Скорость объяснения нравится, достаточно деталей чтобы понять суть и нет цели просто быстро быстро показать как все запустить на коленке (для этого у нас ГПТ уже есть), спасибо!
классс
У тебя на канале вообще всё есть, чтоб быстренько пробежаться по асинхронному современному бэк стеку питониста.
спасибо за контент.
Спасибо за урок, всё получилось, ждём продолжения!
Шикарный байт на подписку - прям вообще топ.
Поэтому пришлось сделать не только красную кнопку серой, но и серую кнопку со счетчиком сделал черной, увеличив счетчик. :D
Ну а объяснения как всегда топовые.
Прекрасный курс ожидается!
Ой спасибо, добрый человек, как раз вовремя, нужно подучить алхимию))
спасибо
блин проблема на проблеме, какой драйвер для Майскл асинхронный?
О мой отзыв о курсе вставил в видео))) В рамках курса планируется ли еще какой то проект по FastAPI? Например что то более масштабное чем то, что идет в курсе? Своего рода финальный аккорд который скомпилирует все то что мы изучили в курсе + какие то дополнительные фишки?
Да, через несколько уроков мы добавим FastAPI к нашему приложению и посмотрим, как отдавать ответы Алхимии
@@artemshumeiko Я про тот что на степике) Я его прошел, понравилось. особенно хорошо легло на предыдущий опыт. Будет ли дополнительное развитие проекта в будущем или новый проект в рамках того курса для рассмотрения каких других аспектов FastAPI? Из всего что смотрел твой курс Самый топовый.
В курс будут добавляться новые блоки. Они будут развивать и дополнять уже существующий проект бронирования отелей. Новый проект в курсе вряд ли появится. Пока в ближайших планах показать, как развертываются проекты в облаке (типа Yanded Cloud, Selectel)
Спасибо за видео)
Не планируется ли в будущем видео про FastAPI + elasticsearch ?))
За курс пасиба, а вот за тему дизреспект, все глаза себе выжиг =(
спасибо, учту
Лучший русскоязычный курс, после которого уже можно спокойно ориентироваться в документации, еще и алембик. Бесплатно...
спасибо большое
Курс начался интересно, жаль, не все моменты проговорены явно, чтобы повторить за автором.
О чем надо догадаться, чтобы все заработало в PyCharm, как на видео:
1) Поднять базу Postgres (реквизиты взять из .env-файла в корне проекта) и подключиться к ней.
2) PyCharm автоматом не видит .env-файлы - в меню Edit Configurations надо прописать путь до этого файла. (VSCode этот файл видит сам, ему помогать не надо)
если незнаешь как поднять базу то для начала тебе стоит изучить sql, а потом уже переходить к orm.
Впервые вижу конструкцию (переменная)= (res=)
Что это значит?
Это чтобы в f строке показать имя переменной которую выводишь
Поивет. Вопросы можно задавать?
конечно! лучше всего в телеграме: t.me/python_community_rus
Подскажите пожалуйста, как этот url построить в create_engine? какой пароль вводить, хост и т.д? эту инфу в pgAdmin искать, если да, то где?
если база postgres поднята локально, то хост localhost, порт 5432, пароль, юзер и название базы по умолчанию postgres
Доброго всем! Подскажите пожалуйста! Вылезает ошибка подключения к БД (sqlalchemy.exc.OperationalError: (psycopg.OperationalError) connection failed: :1), port 5432 failed: �����: ���� ������ "sa" �� ����������
)
Помогло исправить тем, что сам добавил БД с именем SA. Обязательно всегда нужно самому создавать БД в ручную или же это можно как-то сделать автоматически? Спасибо за ответ!
Не, автоматом создание БД не сделать
@@artemshumeiko грусть печаль! Но почему то, когда на курсе по FastAPI делали первое подключение, то на только что установленном пострескл сработало, и оно само создалось!
@@mixig3809 разбирайся с логинами и паролями, по умолчанию идут
DB_HOST=localhost
DB_PORT=5432
DB_NAME=postgres
DB_USER=postgres
DB_PASS= (ты задавал при установке postgres)
Привет! По фаст апи ты был в пучарме, а тут вскод. Почему?) Попробовал его не так давно, вообще не понравился, остался обратно на пучарме
Я фуллстак работал почти всегда, поэтому было удобно весь код смотреть сразу в одном проекте (фронт и бэк в соседних вкладках).
Сейчас обратно на пучарм перешел - уж слишком он хорош. Единственное, что в бесплатной версии нет поддержки Jupyter notebook, что сильно бесит
А как вообще вот где url у engine, что там писать так и не понял
тоесть если pool_size = 5 то всего к нашей бд смогут обращаться только 5 человек?
нет, подобная настройка (доступ до 5 человек) задается только на уровне субд
pool_size определяет кол-во соединений к базе, которая создаст алхимия и будет переиспользовать при обращении к базе, чтобы не создавать новые соединения на каждый запрос
Привет! Видео огонь, у тебя талант учить) Может кто-то подсказать, почему у меня для подгрузки .env надо костылить вот такую штуку - os.path.join(os.path.dirname(__file__), '..', '.env'), а на видео просто .env. Структура проекта такая-же, IDE - pycharm (он хорошо делает импорты))
запускать проект нужно, находясь в корне проекта (то есть там же, где .env файл) через команду по типу python3 src/main.py
иначе придется костылить, как вы
@@artemshumeiko такая же проблема, как и у комментатора. Запускаю из корня в пайчарм, но он не видит .env файл в родительском каталоге
UPD: помогло в итоге пометить корень проекта как source директорию
UPD 2: я ещё init файлы добавлял во все подпапки
Ох уж эти танцы с бубнами!! Нельзя вот так взять и с первого раза подключиться.(тут должна быт та самая картинка)
не рабочий код. начиная с 8:58. не находит конфигурационные файлы .env. бред полный.
А зачем записывать видео в VS Code, если он даже подсказать импорты нормально не может?
если настроить нормально то может
Несколько часов билась с ошибкой (psycopg.OperationalError) [Errno -2] Name or service not known.
Потом решила проверить ссылку с помощью функции make_url из sqlalchemy.engine, сделала print полученной ссылки, и оказалось, что проблема в том, что пароль от postgres содержит символ "@". И программа принимала оставшуюся после @ часть пароля за hostname. 😵💫
Что ты искал в БД ? 😊
не понял вопроса
Сколько не бился с запуском 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)