• Как сразу добавить информацию в хранилище State (aiogram)?

    @i_ikigai
    class reg(StatesGroup):
        name = State()
        fname = State()
        age = State()
    
    
    @dp.message_handler(commands="reg", state="*")
    async def name_step(message: types.Message, state: FSMContext):
        await message.answer(text='Напиши имя ')
        await reg.name.set()
    
    
    @dp.message_handler(state=reg.name, content_types=types.ContentTypes.TEXT)
    async def fname_step(message: types.Message, state: FSMContext):
        if any(map(str.isdigit, message.text)):
            await message.reply("Пожалуйста напишите свое имя")
            return
        await state.update_data(name_user=message.text.title())
        await message.answer(text='Напиши фамилию ')
        await reg.fname.set()
    
    
    @dp.message_handler(state=reg.fname, content_types=types.ContentTypes.TEXT)
    async def age_step(message: types.Message, state: FSMContext):
        if any(map(str.isdigit, message.text)):
            await message.reply("Пожалуйста напишите свою фамилию")
            return
        await message.answer(text='Напиши возраст ')
        await state.update_data(fname_user=message.text.title())
        await reg.age.set()
    
    
    @dp.message_handler(state=reg.age, content_types=types.ContentTypes.TEXT)
    async def res_step(message: types.Message, state: FSMContext):
        if not any(map(str.isdigit, message.text)):
            await message.reply("Пожалуйста введите свой возраст")
            return
        await state.update_data(age_user=message.text.lower())
        user_data = await state.get_data()
        await state.finish()

    в моем коде в user_data записаны 3 сообщения пользователя в словарь. Оттуда их просто получать через обращение f'{user_data[name_user}}' например
    Разобрался че к чему отсюда https://mastergroosha.github.io/telegram-tutorial/...
    В ссылках на гитхаб есть рабочий пример, там он более полный и по нему проще понять
    Ответ написан
    1 комментарий
  • Как стать Python Middle Developer?

    @deliro
    1. Нужно стать middle developer. Для этого нужно уметь программировать, а не уметь программировать на python. Это сложно и даётся не всем. Нужно понимать с самых низов - что такое память, как данные в ней хранятся и почему 1, "1" и 1.0 в памяти лежат совсем по-разному. И до верхов: как спроектировать легко расширяемую систему, не падать в обморок при слове solid, понимать паттерны и как их можно применить в реальном коде и на вопрос "какие паттерны ты знаешь?" не отвечать "синглтон"

    2. Знать особенности питона

    Из книг 100% прочитать и понять: Роберта Мартина, Макконнелла, Fluent Python и, конечно же, паттерны банды четырёх.
    Ответ написан
    6 комментариев