Как привязать данные базы данных sqlite3 к KeyboardButton

Я пишу бота-тестировщика для телеграмма. Задумка такая: пользователю выводится вопрос и в виде кнопок, 4 ответа. Я написал функцию kb(), где как раз прикрепляются данные из py_test к 4 кнопкам. Как достать kb_webtest и values из функции и как сделать так, чтобы каждый последующий запуск num += 1? Если что, в py_test question = values[0], true_answer = values[1], false_answer2,3,4 = values[2,3,4]

from aiogram.dispatcher import FSMContext
from aiogram.dispatcher.filters.state import State, StatesGroup
from aiogram import types, Dispatcher
from aiogram.dispatcher.filters import Text
from aiogram.types import ReplyKeyboardMarkup, KeyboardButton
from database.sqlite_db import cursor

def kb():
    num = 1
    for values in cursor.execute(f'SELECT * FROM py_test WHERE rowid = {num}').fetchall():
        b1 = KeyboardButton(f'{values[1]}')
        b2 = KeyboardButton(f'{values[2]}')
        b3 = KeyboardButton(f'{values[3]}')
        b4 = KeyboardButton(f'{values[4]}')
        b5 = KeyboardButton(f'отмена')

        kb_webtest = ReplyKeyboardMarkup(resize_keyboard=True, one_time_keyboard=True)

        kb_webtest.add(b1, b2).add(b3, b4).add(b5)
        return values, kb_webtest

class FSMWeb(StatesGroup):
    question1 = State()

async def cancel_handler(message: types.Message, state: FSMContext):
    current_state = await state.get_state()
    if current_state is None:
        return
    await state.finish()
    await message.reply('Отмена выполнена')

async def question1(message: types.Message, state: FSMContext):
    await FSMWeb.question1.set()


  # await message.answer(f'{values[0]}', reply_markup=kb_webtest)
  #
  # if message.text == values[1]:
  #     await message.answer('Правильно!')
  #     await state.finish()
  #
  # elif message.text == values[2] or values[3] or values[4]:
  #     await message.answer(f'Не правильно! Правильный ответ: {values[1]}')


def web_test_register(dp: Dispatcher):
    dp.register_message_handler(cancel_handler, Text(equals='отмена', ignore_case=True), state='*')
    dp.register_message_handler(question1, Text(equals='Python test', ignore_case=True), state='*')

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