как Подключить бота telegram к PostgreSQL

Добрый день уважаемые товарищи.

Возникла проблема с подключением самого бота к базе данных Postgres.

На первичном этапе разработки у меня есть два файла. Это db.py and main.py. В db.py я подключился к postgres и написал несколько запросов для команд бота, далее в файле main.py у меня находится простая команда старт которая должна при выполнении проверять есть ли такой пользователь в базе данных уже или нет.

Вопрос в том как мне обращаться с файла main к базе данных , что нужно импортировать?

1

import psycopg2
from psycopg2 import Error
from psycopg2.extensions import ISOLATION_LEVEL_AUTOCOMMIT

try:
    # Подключение к базе данных
    connection = psycopg2.connect(user="",
                                  # пароль установке PostgreSQL
                                  password="",
                                  host="",
                                  port="")
  # Курсор для выполнения операций с базой данных
    cursor = connection.cursor()
    connection.autocommit = True

    def add_user (user_id):
        with connection.cursor() as cursor:
            cursor.execute(
        """INSERT INTO users (user_id) VALUES ('?');"""
    )

    def user_exists (user_id):
       with connection.cursor() as cursor:
           cursor.execute(
        """SELECT * FROM users WHERE user_id = ?; """

    )
    cursor.fetchall()
    
    except (Exception, Error) as error:
    print("Ошибка при работе с PostgreSQL", Error)
finally:
    if connection:
        cursor.close()
        connection.close()

2

import logging
from aiogram import Bot, Dispatcher, executor, types
import markups as nav
import db

TOKEN = ""
logging.basicConfig(level=logging.INFO)

bot = Bot(token=TOKEN)
dp = Dispatcher(bot)

@dp.message_handler(commands = ['start'])
async def start (message: types.Message):
    if (not db.user_exists(message.fom_user.id)):
        pass
    else:

        await bot.send_message(message.from_user.id, "Вы уже зарегистрированны")

if __name__ == "__main__":
    executor.start_polling(dp, skip_updates = True)

Ответы (0 шт):