Работающий функционал
This commit is contained in:
1 parent
3b1df81c41
commit
04138d36b1
14 files changed
+2879
-933
No files matched your search
@@ -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
|
||||
}
|
||||
Reference in new issue
Block a user