/
baelorsw
/
Alarma_Engine
Обзор
Документация
Войти
/
baelorsw
/
Alarma_Engine
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
develop
engine/database.py
55 строк
2 KB
baelorsw
вывод в дащборд, нудно разобраться с временами
12 май 2026, 00:18
12 май 2026, 00:18
90bd2aa
Код
Авторство
О чём код?
# engine/database.py from sqlalchemy import create_engine, Column, Integer, DateTime, Unicode, UnicodeText from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.orm import sessionmaker import urllib.parse from datetime import datetime # Настройки подключения SERVER = "localhost" DATABASE = "SLA_engine" USERNAME = "sa" PASSWORD = "Ss58545256" # Формируем строку подключения params = urllib.parse.quote_plus( f"DRIVER={{ODBC Driver 17 for SQL Server}};" f"SERVER={SERVER};" f"DATABASE={DATABASE};" f"UID={USERNAME};" f"PWD={PASSWORD};" f"TrustServerCertificate=yes;" ) # Создаём движок БЕЗ encoding и convert_unicode engine = create_engine( f"mssql+pyodbc:///?odbc_connect={params}", echo=True, pool_pre_ping=True, # Эти параметры больше не нужны в SQLAlchemy 2.0+ ) Base = declarative_base() # Модель с Unicode-полями # engine/database.py class Request(Base): __tablename__ = "requests" # тоже snake_case id = Column(Integer, primary_key=True, autoincrement=True) text = Column(UnicodeText, nullable=False) category = Column(Unicode(50), nullable=False) urgency = Column(Unicode(50), nullable=False) created_at = Column(DateTime, default=datetime.utcnow) sla_deadline = Column(DateTime, nullable=False) status = Column(Unicode(20), default="open") closed_at = Column(DateTime, nullable=True) SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine) def get_db(): db = SessionLocal() try: yield db finally: db.close()