@Atroshchenko-Dima
Python, postgres

Как правильно выполнить подключение sqlalchemy к postgresql?

В моем пароле к СУБД присутствует символ @ и из-за этого не могу выполнить подключение sqlalchemy на python
Используя нижеприведенный код я получаю ошибку sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) could not translate host name "123@localhost" to address: Unknown server error

engine = 'postgresql://username:password@localhost:5432/mydatabase'


Если задать параметры отдельно, используя такой код, ошибка остается таже самая

DATABASE = 'postgres'
USER = 'postgres'
PASSWORD = 'adssa@123'
HOST = 'localhost'
PORT = '5432'

connection_string = f'postgresql://{USER}:{PASSWORD}@{HOST}:{PORT}/{DATABASE}'


В приложении куда я хочу внедрить подключение sqlalchemy на данный момент используется psycopg2, подскажите, пожалуйста, как мне правильно выполнить подключение к БД?
Пароль создавался не мной и изменить его не могу.
Рабочий код подключения к psycopg2 в моем приложении

params = {
    "host": "localhost",
    "port": 5432,
    "user": "postgres",
    "password": "adssa@123",
    "database": "postgres"
}

# Функция подключения к БД
def get_connection():
    with psycopg2.connect(**params) as conn:
        return conn

# Функция выполнения запроса
def execute_query(query, params=None):
    conn = get_connection()
    # создание объекта курсора для запуска команд PostgreSQL в базе данных
    cur = conn.cursor()
    # запрос
    cur.execute(query, params)
    # Для получения доступа к сформированной выборке используем cur.fetchall()
    rows = cur.fetchall()
    # закрытие курсора
    cur.close()
    # закрытие соединения
    conn.close()
    return rows
  • Вопрос задан
  • 605 просмотров
Решения вопроса 1
Mike_Ro
@Mike_Ro Куратор тега Python
Python, JS, WordPress, SEO, Bots, Adversting
Обратите внимание на свой пароль, попробуйте так:
adssa%40123

По идее, для SQLAlchemy Ваш пароль adssa@123 будет означать login@host.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы