SQLAlchemy: Database connection, raw SQL queries with engine #2
Научимся подключаться к Базе данных через engine синхронно и асинхронно, напишем простой SELECT запрос.
Освой backend разработку на Python с НУЛЯ до выхода в продакшн за 3 месяца: clck.ru/35mSun
🚨 Продажи открыты только до 31 мая 2024 года! 🚨
Прочитать отзывы к курсу можно на Stepik: clck.ru/38ZdhZ
Все вопросы по SQLAlchemy обсуждаем в телеграм сообществе: t.me/python_community_rus
Мой телеграм канал о жизни разработчика: t.me/artemshumeiko
Полезные материалы для бэкендера в моем телеграм боте: t.me/ArtemShumeikoBot?start=eXQ
Репозиторий на Github с кодом из видео: t.me/artemshumeiko/28
Поддержать меня и получить ранний доступ к видео можно здесь: boosty.to/artemshumeiko
0:00 - Обзор проекта
1:59 - Адрес для подключения к БД (синхронный и асинхронный)
3:04 - Создание engine (движка)
7:33 - Выполняем запрос через engine
11:03 - Извлекаем ответ БД из итератора Алхимии
14:33 - Асинхронный движок и запрос
Пікірлер: 49
Освой backend разработку на FastAPI с НУЛЯ до выхода в продакшн за 3 месяца: clck.ru/35mSun *🚨 Продажи открыты только до 31 мая 2024 года! 🚨* Прочитать отзывы к курсу можно на Stepik: clck.ru/38ZdhZ Пишу про лайфхаки при поиске работы, рынок труда и способы развития разработчиков в TG канале - подписывайся: t.me/artemshumeiko Вступай в Python-сообщество (здесь можно задать любой вопрос): t.me/python_community_rus
Скорость объяснения нравится, достаточно деталей чтобы понять суть и нет цели просто быстро быстро показать как все запустить на коленке (для этого у нас ГПТ уже есть), спасибо!
Замечательный урок, спасибо Артем!
@artemshumeiko
3 ай бұрын
Спасибо! Рад, что видео оказалось полезным
Спасибо за урок, всё получилось, ждём продолжения!
Шикарный байт на подписку - прям вообще топ. Поэтому пришлось сделать не только красную кнопку серой, но и серую кнопку со счетчиком сделал черной, увеличив счетчик. :D Ну а объяснения как всегда топовые.
Ой спасибо, добрый человек, как раз вовремя, нужно подучить алхимию))
Прекрасный курс ожидается!
блин проблема на проблеме, какой драйвер для Майскл асинхронный?
Впервые вижу конструкцию (переменная)= (res=) Что это значит?
Спасибо за видео) Не планируется ли в будущем видео про FastAPI + elasticsearch ?))
спасибо
О мой отзыв о курсе вставил в видео))) В рамках курса планируется ли еще какой то проект по FastAPI? Например что то более масштабное чем то, что идет в курсе? Своего рода финальный аккорд который скомпилирует все то что мы изучили в курсе + какие то дополнительные фишки?
@artemshumeiko
8 ай бұрын
Да, через несколько уроков мы добавим FastAPI к нашему приложению и посмотрим, как отдавать ответы Алхимии
@silverguard3638
8 ай бұрын
@@artemshumeiko Я про тот что на степике) Я его прошел, понравилось. особенно хорошо легло на предыдущий опыт. Будет ли дополнительное развитие проекта в будущем или новый проект в рамках того курса для рассмотрения каких других аспектов FastAPI? Из всего что смотрел твой курс Самый топовый.
@artemshumeiko
8 ай бұрын
В курс будут добавляться новые блоки. Они будут развивать и дополнять уже существующий проект бронирования отелей. Новый проект в курсе вряд ли появится. Пока в ближайших планах показать, как развертываются проекты в облаке (типа Yanded Cloud, Selectel)
Подскажите пожалуйста, как этот url построить в create_engine? какой пароль вводить, хост и т.д? эту инфу в pgAdmin искать, если да, то где?
@artemshumeiko
3 ай бұрын
если база postgres поднята локально, то хост localhost, порт 5432, пароль, юзер и название базы по умолчанию postgres
Доброго всем! Подскажите пожалуйста! Вылезает ошибка подключения к БД (sqlalchemy.exc.OperationalError: (psycopg.OperationalError) connection failed: :1), port 5432 failed: �����: ���� ������ "sa" �� ���������� ) Помогло исправить тем, что сам добавил БД с именем SA. Обязательно всегда нужно самому создавать БД в ручную или же это можно как-то сделать автоматически? Спасибо за ответ!
@artemshumeiko
5 ай бұрын
Не, автоматом создание БД не сделать
@mixig3809
5 ай бұрын
@@artemshumeiko грусть печаль! Но почему то, когда на курсе по FastAPI делали первое подключение, то на только что установленном пострескл сработало, и оно само создалось!
@dmitriystalin4386
2 ай бұрын
@@mixig3809 разбирайся с логинами и паролями, по умолчанию идут DB_HOST=localhost DB_PORT=5432 DB_NAME=postgres DB_USER=postgres DB_PASS= (ты задавал при установке postgres)
А как вообще вот где url у engine, что там писать так и не понял
Курс начался интересно, жаль, не все моменты проговорены явно, чтобы повторить за автором. О чем надо догадаться, чтобы все заработало в PyCharm, как на видео: 1) Поднять базу Postgres (реквизиты взять из .env-файла в корне проекта) и подключиться к ней. 2) PyCharm автоматом не видит .env-файлы - в меню Edit Configurations надо прописать путь до этого файла. (VSCode этот файл видит сам, ему помогать не надо)
@montecristo31
3 ай бұрын
если незнаешь как поднять базу то для начала тебе стоит изучить sql, а потом уже переходить к orm.
Привет! По фаст апи ты был в пучарме, а тут вскод. Почему?) Попробовал его не так давно, вообще не понравился, остался обратно на пучарме
@artemshumeiko
4 ай бұрын
Я фуллстак работал почти всегда, поэтому было удобно весь код смотреть сразу в одном проекте (фронт и бэк в соседних вкладках). Сейчас обратно на пучарм перешел - уж слишком он хорош. Единственное, что в бесплатной версии нет поддержки Jupyter notebook, что сильно бесит
За курс пасиба, а вот за тему дизреспект, все глаза себе выжиг =(
@artemshumeiko
5 ай бұрын
спасибо, учту
Поивет. Вопросы можно задавать?
@artemshumeiko
8 ай бұрын
конечно! лучше всего в телеграме: t.me/python_community_rus
тоесть если pool_size = 5 то всего к нашей бд смогут обращаться только 5 человек?
@artemshumeiko
5 ай бұрын
нет, подобная настройка (доступ до 5 человек) задается только на уровне субд pool_size определяет кол-во соединений к базе, которая создаст алхимия и будет переиспользовать при обращении к базе, чтобы не создавать новые соединения на каждый запрос
Ох уж эти танцы с бубнами!! Нельзя вот так взять и с первого раза подключиться.(тут должна быт та самая картинка)
Привет! Видео огонь, у тебя талант учить) Может кто-то подсказать, почему у меня для подгрузки .env надо костылить вот такую штуку - os.path.join(os.path.dirname(__file__), '..', '.env'), а на видео просто .env. Структура проекта такая-же, IDE - pycharm (он хорошо делает импорты))
@artemshumeiko
5 ай бұрын
запускать проект нужно, находясь в корне проекта (то есть там же, где .env файл) через команду по типу python3 src/main.py иначе придется костылить, как вы
@xolog1144
3 ай бұрын
@@artemshumeiko такая же проблема, как и у комментатора. Запускаю из корня в пайчарм, но он не видит .env файл в родительском каталоге UPD: помогло в итоге пометить корень проекта как source директорию UPD 2: я ещё init файлы добавлял во все подпапки
Лучший русскоязычный курс, после которого уже можно спокойно ориентироваться в документации, еще и алембик. Бесплатно...
@artemshumeiko
3 ай бұрын
спасибо большое
не рабочий код. начиная с 8:58. не находит конфигурационные файлы .env. бред полный.
А зачем записывать видео в VS Code, если он даже подсказать импорты нормально не может?
@user-zm2fm5mr9d
2 ай бұрын
если настроить нормально то может
Сколько не бился с запуском 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)
Несколько часов билась с ошибкой (psycopg.OperationalError) [Errno -2] Name or service not known. Потом решила проверить ссылку с помощью функции make_url из sqlalchemy.engine, сделала print полученной ссылки, и оказалось, что проблема в том, что пароль от postgres содержит символ "@". И программа принимала оставшуюся после @ часть пароля за hostname. 😵💫
Что ты искал в БД ? 😊
@artemshumeiko
5 ай бұрын
не понял вопроса