op13-cp-3/models/database.py
2026-02-11 14:57:06 +03:00

36 lines
986 B
Python

import psycopg2
from psycopg2.extras import RealDictCursor
from config import (
DB_HOST,
DB_PORT,
DB_NAME,
DB_USER,
DB_PASSWORD,
)
class Database:
def __init__(self):
self.connection = psycopg2.connect(
host=DB_HOST,
port=DB_PORT,
dbname=DB_NAME,
user=DB_USER,
password=DB_PASSWORD,
cursor_factory=RealDictCursor,
)
def fetch_all(self, query: str, params: tuple = ()):
with self.connection.cursor() as cursor:
cursor.execute(query, params)
return cursor.fetchall()
def fetch_one(self, query: str, params: tuple = ()):
with self.connection.cursor() as cursor:
cursor.execute(query, params)
return cursor.fetchone()
def execute(self, query: str, params: tuple = ()):
with self.connection.cursor() as cursor:
cursor.execute(query, params)
self.connection.commit()