Метод create класса URL
Метод create класса URL создает объект URL из отдельных компонентов: имени диалекта, имени пользователя, пароля, хоста, порта, имени базы данных и словаря параметров запроса. Первым параметром передается имя диалекта (драйвера) в виде строки, например 'sqlite' или 'postgresql'. Остальные компоненты передаются именованными параметрами и являются необязательными.
Синтаксис
URL.create(drivername, [username], [password], [host], [port], [database], [query])
Пример
Давайте создадим URL для базы SQLite в памяти, передав только имя диалекта:
from sqlalchemy.engine import URL
url = URL.create('sqlite', database=':memory:')
print(url)
Результат выполнения кода:
"sqlite:///:memory:"
Пример
Давайте создадим URL для базы данных с указанием пользователя, пароля, хоста, порта и имени базы:
from sqlalchemy.engine import URL
url = URL.create(
'postgresql',
username='user',
password='secret',
host='localhost',
port=5432,
database='articles'
)
print(url)
Результат выполнения кода:
"postgresql://user:secret@localhost:5432/articles"
Пример
Давайте передадим дополнительные параметры подключения через словарь query:
from sqlalchemy.engine import URL
url = URL.create(
'sqlite',
database=':memory:',
query={'charset': 'utf8'}
)
print(url)
Результат выполнения кода:
"sqlite:///:memory:?charset=utf8"
Пример
Давайте создадим объект URL и передадим его в функцию create_engine для подключения к базе:
from sqlalchemy import create_engine, text
from sqlalchemy.engine import URL
url = URL.create('sqlite', database=':memory:')
engine = create_engine(url)
with engine.connect() as conn:
res = conn.execute(text('SELECT 1'))
print(res.scalar())
Результат выполнения кода:
1
Смотрите также
-
класс
URL,
который представляет строку подключения -
метод
render_as_string,
который возвращает строковое представление URL -
атрибут
drivername,
который хранит имя диалекта подключения -
атрибут
database,
который хранит имя базы данных