You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

35 lines
1.3 KiB
Python

import psycopg2
from psycopg2 import sql
import json
# Параметры подключения
DB_CONFIG = {
'host': '192.168.1.100',
'port': 5432, # стандартный порт PostgreSQL
'database': 'game_shop', # замените на имя вашей БД
'user': 'casaos', # замените на ваше имя пользователя
'password': 'casaos' # замените на ваш пароль
}
def fetch_table_as_json(cursor, table_name) -> list[dict]:
cursor.execute(sql.SQL("SELECT * FROM {}").format(sql.Identifier(table_name)))
columns = [desc[0] for desc in cursor.description] # Имена столбцов
rows = cursor.fetchall()
# Преобразуем каждую строку в словарь
result = [dict(zip(columns, row)) for row in rows]
return result
def fetch_row_as_json(cursor, table_name, row_id) -> dict | None:
query = sql.SQL("SELECT * FROM {} WHERE id = %s").format(
sql.Identifier(table_name)
)
cursor.execute(query, (row_id,))
columns = [desc[0] for desc in cursor.description] # Имена столбцов
row = cursor.fetchone() # Получаем одну строку
if row is None:
return None # или raise Exception, если нужно
return dict(zip(columns, row))