/
BarakovskayaMaria
/
RGB
Обзор
Документация
Войти
/
BarakovskayaMaria
/
RGB
Код
Запросы
2
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
app/database.py
43 строки
1 KB
BarakovskayaMaria
Merge master into Masha and resolve backend conflicts
30 апр 2026, 00:57
30 апр 2026, 00:57
55dba33
Код
Авторство
О чём код?
# app/database.py import psycopg2 from sqlalchemy import create_engine from sqlalchemy.orm import sessionmaker, declarative_base Base = declarative_base() import os from dotenv import load_dotenv load_dotenv() DB_CONFIG = { "host": os.getenv("DB_HOST"), "port": os.getenv("DB_PORT"), "dbname": os.getenv("DB_NAME"), "user": os.getenv("DB_USER"), "password": os.getenv("DB_PASSWORD"), "sslmode": os.getenv("DB_SSLMODE") } # Функции для прямых запросов (psycopg2) - было ранее на первом этапе def get_connection(): return psycopg2.connect(**DB_CONFIG) def execute_query(query, params=None): conn = get_connection() cur = conn.cursor() try: cur.execute(query, params) if query.strip().upper().startswith('SELECT'): return cur.fetchall() conn.commit() return None finally: cur.close() conn.close() # SQLAlchemy engine и session (для работы с моделями) - здесь уже после создания моделей в models.py # SQLAlchemy engine и session (для работы с моделями) - здесь уже после создания моделей в models.py DATABASE_URL = f"postgresql://{DB_CONFIG['user']}:{DB_CONFIG['password']}@{DB_CONFIG['host']}:{DB_CONFIG['port']}/{DB_CONFIG['dbname']}?sslmode={DB_CONFIG['sslmode']}" engine = create_engine(DATABASE_URL) SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)