SQLAlchemy: Database connection, raw SQL queries with engine #2
Vložit
- čas přidán 3. 08. 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
Ну а объяснения как всегда топовые.
Ой спасибо, добрый человек, как раз вовремя, нужно подучить алхимию))
Прекрасный курс ожидается!
спасибо
За курс пасиба, а вот за тему дизреспект, все глаза себе выжиг =(
спасибо, учту
Курс начался интересно, жаль, не все моменты проговорены явно, чтобы повторить за автором.
О чем надо догадаться, чтобы все заработало в PyCharm, как на видео:
1) Поднять базу Postgres (реквизиты взять из .env-файла в корне проекта) и подключиться к ней.
2) PyCharm автоматом не видит .env-файлы - в меню Edit Configurations надо прописать путь до этого файла. (VSCode этот файл видит сам, ему помогать не надо)
если незнаешь как поднять базу то для начала тебе стоит изучить sql, а потом уже переходить к orm.
Спасибо за видео)
Не планируется ли в будущем видео про FastAPI + elasticsearch ?))
О мой отзыв о курсе вставил в видео))) В рамках курса планируется ли еще какой то проект по FastAPI? Например что то более масштабное чем то, что идет в курсе? Своего рода финальный аккорд который скомпилирует все то что мы изучили в курсе + какие то дополнительные фишки?
Да, через несколько уроков мы добавим FastAPI к нашему приложению и посмотрим, как отдавать ответы Алхимии
@@artemshumeiko Я про тот что на степике) Я его прошел, понравилось. особенно хорошо легло на предыдущий опыт. Будет ли дополнительное развитие проекта в будущем или новый проект в рамках того курса для рассмотрения каких других аспектов FastAPI? Из всего что смотрел твой курс Самый топовый.
В курс будут добавляться новые блоки. Они будут развивать и дополнять уже существующий проект бронирования отелей. Новый проект в курсе вряд ли появится. Пока в ближайших планах показать, как развертываются проекты в облаке (типа Yanded Cloud, Selectel)
блин проблема на проблеме, какой драйвер для Майскл асинхронный?
Лучший русскоязычный курс, после которого уже можно спокойно ориентироваться в документации, еще и алембик. Бесплатно...
спасибо большое
Впервые вижу конструкцию (переменная)= (res=)
Что это значит?
Это чтобы в f строке показать имя переменной которую выводишь
Ох уж эти танцы с бубнами!! Нельзя вот так взять и с первого раза подключиться.(тут должна быт та самая картинка)
А как вообще вот где url у engine, что там писать так и не понял
Подскажите пожалуйста, как этот url построить в create_engine? какой пароль вводить, хост и т.д? эту инфу в pgAdmin искать, если да, то где?
если база postgres поднята локально, то хост localhost, порт 5432, пароль, юзер и название базы по умолчанию postgres
Привет! По фаст апи ты был в пучарме, а тут вскод. Почему?) Попробовал его не так давно, вообще не понравился, остался обратно на пучарме
Я фуллстак работал почти всегда, поэтому было удобно весь код смотреть сразу в одном проекте (фронт и бэк в соседних вкладках).
Сейчас обратно на пучарм перешел - уж слишком он хорош. Единственное, что в бесплатной версии нет поддержки Jupyter notebook, что сильно бесит
Доброго всем! Подскажите пожалуйста! Вылезает ошибка подключения к БД (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)
Поивет. Вопросы можно задавать?
конечно! лучше всего в телеграме: t.me/python_community_rus
тоесть если 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 файлы добавлял во все подпапки
9 минута и второй запуск уже с text(). на винде идёт бесчисленное кол-во ошибок
приложите трейсбек
не рабочий код. начиная с 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)
то же самое