Pythoner
Фотография
✈️ В Python asyncpg — это высокопроизводительная библиотека для асинхронного доступа к базам данных PostgreSQL. Она построена на базе asyncio и предоставляет низкоуровневый интерфейс для взаимодействия с PostgreSQL, обеспечивая высокую скорость и эффективность.
➡️ Применение asyncpg особенно актуально в высоконагруженных веб-приложениях и сервисах, где требуется максимальная производительность при работе с базой данных. asyncpg позволяет выполнять запросы к базе данных асинхронно, не блокируя основной поток приложения, что повышает общую отзывчивость и пропускную способность. Библиотека также поддерживает продвинутые возможности PostgreSQL, такие как JSON, hstore и уведомления.
➡️ Вот пример использования asyncpg для выполнения запросов к базе данных:
import asyncio
import asyncpg
async def run():
conn = await asyncpg.connect(user="user", password="password", database="database", host="127.0.0.1") # Подставьте свои учетные данные
try:
# Выполнение запроса на создание таблицы (если она не существует)
await conn.execute('''
CREATE TABLE IF NOT EXISTS users (
id SERIAL PRIMARY KEY,
name TEXT
)
''')
# Выполнение запроса на вставку данных
await conn.execute("INSERT INTO users (name) VALUES ($1)", "Alice")
# Выполнение запроса на выборку данных
result = await conn.fetch("SELECT * FROM users")
print(result) # Вывод: [<Record id=1 name='Alice'>]
# Выполнение параметризованного запроса на выборку данных
user_name = "Alice"
user = await conn.fetchrow("SELECT * FROM users WHERE name = $1", user_name)
print(user) # Вывод: <Record id=1 name='Alice'>
# Транзакции
async with conn.transaction():
await conn.execute("UPDATE users SET name = $1 WHERE id = $2", "Bob", 1)
# Обработка ошибок
try:
await conn.execute("SELECT * FROM non_existent_table") # Несуществующая таблица
except asyncpg.exceptions.UndefinedTableError as e:
print(f"Ошибка: {e}")
finally:
await conn.close()
if __name__ == "__main__":
asyncio.run(run())
⬆️ В этом примере демонстрируется подключение к базе данных PostgreSQL, выполнение различных SQL-запросов (создание таблицы, вставка, выборка данных), использование параметризованных запросов, обработка транзакций и пример обработки исключения UndefinedTableError. Для запуска примера необходимо установить asyncpg (pip install asyncpg) и иметь работающий сервер PostgreSQL с указанными учетными данными. Не забудьте заменить user, password, database, и host на ваши реальные данные. Помните, что asyncpg работает асинхронно, поэтому необходимо использовать asyncio.run() для запуска кода.
🐍 Pythoner
38 · 1.8K ·