@abdullokh_apo

Aiogram, где лучше хранить данные?

Пишу пиццерию на aiogram.
Хотел реализовать кнопку "Корзина" где храняться продукты, которые выбрал юзер.
Где лучше хранить эти самые данные? В голову пришли 3 варианта.

1) FSM. Но через FSM не смог так как он хранит одну информацию, и если например юзер выбрал вторую пиццу первое значение теряется.
@dp.message_handler()
async def example(msg: types.Message, state=FSMContext):
    await state.update_data(value=1)
    await state.update_data(value=2)
    data = await state.get()
    print(data['value'])

Выводит 2, а 1 теряется

2) MySQL. Думал к бд подключить, но предпологаю, что многовато запросов на базу будет.
3) .TXT. Еще и можно с txt файлом обойтись - хранить и выводить оттуда, но не знаю можно ли такой подход использовать в более серьезных проектах.
Какой вариант лучше или можно использовать что-то другое? Если да то где можно об этом почитать?
  • Вопрос задан
  • 349 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Sheptyakov
Привет!

Можно хранить через FSM, но тогда нужно придумывать логику дополнения заказа.
Супер простой пример для понимания принципа:
def update_pizza_state(state, new_pizza):
    pizza = state.get(‘pizza’)
    if pizza:
        state[‘pizza’] = pizza + ‘;’ + new_pizza
    else:
        state[‘pizza’] = new_pizza
    return state


В таком случае, соответственно, нужно будет реализовать методы по удалению конкретной пиццы и развёртки строки с пиццами в заказ. Но кажется, мысль ясна.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы