#!/usr/bin/env python3 """Модуль для работы с базой данных""" import psycopg2 import psycopg2.extras import os DB_CONN = os.environ.get( 'DB_CONN', 'dbname=books user=postgres password=Karabas@Barabas host=172.20.0.4' ) def get_db(): """Возвращает соединение с БД""" return psycopg2.connect(DB_CONN) def get_cursor(): """Возвращает соединение и курсор с RealDictCursor""" conn = get_db() cur = conn.cursor(cursor_factory=psycopg2.extras.RealDictCursor) return conn, cur def get_stats(): """Возвращает статистику библиотеки""" conn, cur = get_cursor() cur.execute("SELECT COUNT(*) as cnt FROM books") books_count = cur.fetchone()['cnt'] cur.execute("SELECT COUNT(*) as cnt FROM authors") authors_count = cur.fetchone()['cnt'] cur.execute("SELECT COUNT(*) as cnt FROM series") series_count = cur.fetchone()['cnt'] cur.execute("SELECT COUNT(*) as cnt FROM genres") genres_count = cur.fetchone()['cnt'] conn.close() return { 'books': books_count, 'authors': authors_count, 'series': series_count, 'genres': genres_count }