как Подключить бота 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)