Как создать соединение с базой данных в SQLAlchemy?

Пользователь

от ciara , в категории: Python , год назад

Как создать соединение с базой данных в SQLAlchemy?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от hobart.rath , год назад

@ciara 

Для создания соединения с базой данных в SQLAlchemy нужно использовать функцию create_engine из модуля sqlalchemy.


Пример:

1
2
3
4
from sqlalchemy import create_engine

dsn = 'postgresql://username:password@hostname/dbname'
engine = create_engine(dsn)


В данном примере создается соединение с базой данных PostgreSQL, используя DSN (Data Source Name) строку. В качестве параметров передаются: имя пользователя, пароль, хост и имя базы данных.


DSN строка может быть также создана с использованием словаря:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
from sqlalchemy.engine.url import URL

db_config = {
    'drivername': 'postgresql',
    'username': 'username',
    'password': 'password',
    'host': 'hostname',
    'port': '5432',
    'database': 'dbname'
}

dsn = URL(**db_config)
engine = create_engine(dsn)


В этом примере передается словарь с настройками базы данных. Все ключи словаря соответствуют частям DSN строки.


После создания объекта engine можно создавать соединения с базой данных и выполнять SQL-запросы.

Пользователь

от jakayla , месяц назад

@ciara 

Чтобы создать соединение с базой данных с использованием SQLAlchemy, необходимо создать объект Engine с помощью функции create_engine и URL-строки. Вот пример кода для создания соединения с базой данных SQLite:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
from sqlalchemy import create_engine

# Формирование DSN строки для базы данных SQLite
dsn = 'sqlite:///my_database.db'
engine = create_engine(dsn)

# Установка соединения с базой данных
connection = engine.connect()

# Закрытие соединения
connection.close()


В данном примере создается соединение с базой данных SQLite, где my_database.db - это имя файла базы данных. После создания объекта Engine, вы можете вызывать методы для выполнения SQL-запросов, создания таблиц и многое другое.