Работающий функционал

This commit is contained in:
astakhovp committed 2026-10-10 20:41:32 +03:00
1 parent 3b1df81c41
commit 04138d36b1
14 files changed
+2879 -933

No files matched your search

+48
View File
@@ -0,0 +1,48 @@
#!/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
}