Телеграмм бот не видит изменения в базе данных в своем потоке

я написал Телеграм бота, который удаляет и выводит записи из бд Mysql в виде таблицы. командой del:50 - бот удаляет запись с id == 50 командой all - бот выводит все слова в виде таблицы

Проблема: При запуске бота , бот спокойно удаляет запись из бд , но когда вывожу таблицу записей. удаленная запись остается. Если я перезагружу бота , то запись пропадает. но если опять удалить и вывести , то бот в своем потоке не видит изменения в базе. всю голову изломал. что можно сделать ? начало идет от 77 строки при POST запросе

from flask import Flask,request
from models import RuEng,User,db,word_user
from sqlalchemy.sql import text,delete,and_
import telebot
from flask_sqlalchemy import SQLAlchemy
from prettytable import PrettyTable

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://root:1@localhost:27017/rueng'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
db = SQLAlchemy(app)


token = ""



def send_msg(data):
    bot = telebot.TeleBot('1771178136:AAGu6w8JF8UkXSuKbo36_ozRTo2phCXYFnw')
    bot.send_message(data['chat_id'], data['text'],parse_mode=data['parse_mode'])

    # method = "sendMessage"
    # url = f"https://api.telegram.org/bot{token}/{method}"
    # requests_session.post(url, data=data)

def make_table(chat_id,utid):

    try:
        user_id = User.query.filter(User.telegramid == utid).first().id
        allw = RuEng.query.filter(RuEng.users.any(id=user_id)).all()
    except:
        data = {'chat_id':chat_id,'text':'Что то пошло не так, попробуй еще раз'}
        send_msg(data)
        return

    x = PrettyTable()
    x.field_names = ["id", "ru", "eng"]

    for i in allw:
        # x.add_rows([[i.id,i.ru,i.eng]])
    # data={'chat_id':chat_id,'text':"dfsdf"}
    data = {"chat_id": chat_id, 'text':f"{allw}", 'parse_mode':'MarkdownV2'}
    send_msg(data)



def del_word(chat_id,word_id,utid):
    try:
        user_id = User.query.filter(User.telegramid == utid).first().id
        
        stmt = delete(word_user).where(and_(word_user.columns.uid==user_id, word_user.columns.wid==word_id))
        db.session.commit()
        db.session.close()
        # db.session.expunge(stmt)

        data = {'chat_id':chat_id,'text':'Слово удалено','parse_mode':None}
        send_msg(data)
         
    except:
         
        data={'chat_id':chat_id,'text':'что-то пошло не так  в del_word','parse_mode':None}
        send_msg(data)


def parse_message(chat_id,text,utid):
    text_list = text.split(':')

    if 'all' in text_list:
        make_table(chat_id,utid)

    elif 'del' in text_list:
        try:
             
            word_id = text_list[1]
            del_word(chat_id,word_id,utid)
        except:
            data={'chat_id':chat_id,'text':'неверный формат'}
            send_msg(data)


@app.route("/", methods=["GET", "POST",'PUT'])
def receive_update():
    if request.method == "POST":
        try:
             
            chat_id = request.json["message"]["chat"]["id"]
            text = request.json["message"]['text']
            utid = request.json["message"]['from']['id']
            parse_message(chat_id,text,utid)
             
        except:
            data = {'chat_id':'515854171','text':'Я не понял тебя мужик, попробуй еще раз','parse_mode':None}
            send_msg(data)  
    return {"ok": True}


if __name__ == '__main__':
    app.run(debug=True)

В RuEng храня слова
в User - пользователи
между ними отношение многие ко многим
схема :
Описание таблиц Пример работы с ботом
Удаляю слово Вывожу слова


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