5.2 Подключение к базе данных используя SQLAlchemy
7 из 7 шагов пройдено
3 из 3 баллов  получено

SQLite3

Драйверы:

База данных в памяти не хранится на диске (полезно для тестов):

DATABASE = 'sqlite:///'
DATABASE = 'sqlite:///:memory:'
DATABASE = 'sqlite+pysqlite:///:memory:'

Файловое соединение с использованием относительного пути (3 косые черты):

DATABASE = 'sqlite:///myfile.db'
DATABASE = 'sqlite+pysqlite:///myfile.db'

Подключение файлов по абсолютному пути (обратите внимание на 4 косые черты для unix, и обратная косая черта для Windows):

DATABASE = 'sqlite:////path/to/myfile.db'
DATABASE = 'sqlite:///C:\\path\\to\\myfile.db'

Современные версии SQLite поддерживают альтернативную систему подключения с использованием URI уровня драйвера, которая имеет то преимущество, что могут быть переданы дополнительные аргументы на уровне драйвера, включая такие опции, как "только для чтения". 'URI' уровня SQLite хранится как часть "базы данных" URL-адреса SQLAlchemy (то есть после косой черты):

DATABASE = 'sqlite:///file:path/to/myfile.db?uri=true&mode=ro'
DATABASE = 'sqlite:///file:path/to/myfile.db?uri=true&mode=ro&check_same_thread=true&timeout=10&nolock=1'

Aiosqlite:

DATABASE = 'sqlite+aiosqlite:///myfile.db'

Асинхронные соединения требуютcreate_async_engine

 

PostgreSQL

Драйверы:

Драйвер по умолчанию:

DATABASE = 'postgresql://myusername:mypassword@myhost:5432/mydatabase'

Psycopg2 с использованием TCP/IP:

DATABASE = 'postgresql+psycopg2://myusername:mypassword@myhost:5432/mydatabase'
DATABASE = 'postgresql+psycopg2://myusername:mypassword@myhost:5432/mydatabase?sslmode=require'
Psycopg2 с использованием сокета Unix:
DATABASE = 'postgresql+psycopg2://myusername:mypassword@/mydatabase'  # По умолчанию сокет в /tmp
DATABASE = 'postgresql+psycopg2://myusername:mypassword@/mydatabase?host=/var/lib/postgresql' # Укажем местоположение сокета
DATABASE = 'postgresql+psycopg2://myusername:mypassword@/mydatabase?host=HostA:port1&host=HostB&host=HostC'  # Резервные хосты

Драйвер Pg8000:

DATABASE = 'postgresql+pg8000://myusername:mypassword@myhost:5432/mydatabase'

Асинхронный PostgreSQL:

DATABASE = 'postgresql+asyncpg://myusername:mypassword@myhost:5432/mydatabase'
DATABASE = 'postgresql+asyncpg://myusername:mypassword@myhost:5432/mydatabase?async_fallback=true'
DATABASE = 'postgresql+asyncpg://myusername:mypassword@myhost:5432/mydatabase?prepared_statement_cache_size=500'
DATABASE = 'postgresql+asyncpg://myusername:mypassword@myhost:5432/mydatabase?prepared_statement_cache_size=0'

Асинхронные соединения требуютcreate_async_engine

Psycopg2cffi (реализуется с слоем cffi для портативности):

DATABASE = 'postgresql+psycopg2cffi://myusername:mypasswordword@myhost:5432/mydatabase'


 


Будьте вежливы и соблюдайте наши принципы сообщества. Пожалуйста, не оставляйте решения и подсказки в комментариях, для этого есть отдельный форум.
Нет обсуждений. Начните первое.