Урок №7. Добавление пользователя в базу данных и список пользователей
В данном уроке мы научимся добавлять данные пользователя в базу данных и выводить список всех пользователей.
Добавление пользователя в базу данных.
В прошлом уроке мы закончили на том, что пользователь вводил нам своё имя и счет, после чего наш бот писал, что пользователь успешно зарегистрирован.
Теперь нам необходимо сохранить пользователя в базе данных, для дальнейшей работы с ним. В качестве данных для регистрации мы будем использовать имя и счет, который мы получили от самого пользователя. Чтобы сохранить пользователя в базе данных нам необходимо подключиться к самой базе данных. Мы также прописываем connect, указываем к какому файлу мы подключаемся, создаем cursor и далее мы будем выполнять некую команду, потом синхронизацию и также будем закрывать базу данных. Только в execute мы должны прописать немного другое. Наша команда будет звучать следующим образом: Мы говорим, что будем добавлять некую новую запись в такую таблицу, как users. В качестве полей, которых мы будем туда добавлять это поле name и VALUE. Значение для поля id нам передавать не надо, так как оно у нас auto_increment и будет автоматически подставляться. Мы передаем только те поля, которые автоматически не подставляются. В таблицу users мы будем подставлять наше значения из переменных как name и value. Также это должна быть отформатированная строка и мы будем подставлять наши данные в некую строку.
Сейчас наша проблема будет заключаться в том, что переменной name нет в нашей функции и мы по сути не можем ее подставить. Чтобы исправить нашу ошибку, мы должны создать в самом начале переменную name, укажем ее значение, как пустая строка. И теперь функции user_name мы укажем, что будем работать с глобальной переменной name и уже в нее мы будем устанавливать значение.
Теперь мы можем спокойно обращаться к нашей переменной name и у нас не будет ошибки. Сейчас у нас корректно будет добавляться новый пользователь в базу данных.
С базой данных у нас все готово. Теперь каждый новый пользователь будет добавляться в нашу базу данных.
Вывод список всех пользователей.
Давайте добавим кнопку, после нажатия на которую у нас буду отображаться все зарегистрированные пользователи.
На кнопке я не буду уделять большого внимания, так как их мы детально разбирали в четвертом уроке.
Пока наша кнопка работать не будет, так как мы не написали, что должно выполняться при нажатии на эту кнопку. Давайте это исправим. Сначала мы создадим функцию, например, new с параметром message и будем проверять, если нам выдается текст 'Список пользователей', то мы вами подключаемся к базе данных и выдаем таблицу пользователей. Для этого мы также прописываем то, что писали ранее для подключения к базе данных. Потом в execute мы должны сказать другое. Мы передаем, что выбираем все поля из такой таблицы, как users.Далее команду commit нам прописывать не надо, так как эта команда срабатывает, чтобы установить, обновить или удалить что-либо. Здесь же мы получаем данные, поэтому вместо commit будем использовать fetchall. Эта функция возвращает полностью все найденные записи. Эти же все найденные записи мы установим в некую переменную, например, users.Далее мы должны перебрать все полученные данные и вывести их на экран. Для этого нам надо создать новую переменную, которая изначально будет пустой. Далее мы создаем цикл, в котором будем перебирать наш список users(то есть перебираем все наши записи). И здесь в цикле к нашей пустой переменной мы будем добавлять новую строку, в которой мы будем выводить данные пользователя. Для начала выведем имя.
Для этого мы должны обратиться к текущему элементу с которым работаем(в моем случае это i) и в этом списке у меня находиться 3 элемента:
Id текущей записи
Имя пользователя
Счет пользователя
Мы обращаемся ко второму элементу, а по индексу он первые(так как индекс начинается с 0). Таким образом мы выводим имя пользователя. Чтобы вывести соответственно счет, мы должны обратиться уже к третьему элементу, или же ко второму индексу.
Также чтобы каждые пользователь появлялся в новой строке мы должны в конце прописать \n. И потом также в конце мы с вами закрываем курсор и коннект к нашей базе данных.
Таким образом мы сформируем некую строку, которую будем выводить нашим пользователям. Для этого мы пропишем bot.send_message(message.chat_id, info). Вот таким образом у нас будет все выглядеть.
Теперь давайте запустим бота и посмотрим, как он работает.
Теперь каждый новые пользователи будут видеть, зарегистрированных людей в боте.
Также если вы не хотите долго ждать, то все уроки и коды с уроков уже есть в моем telegram канале.
Также каждый день в telegram канале появляются полезные книги и пособия с материалом по программированию, а также выходят эффективные фишки, которые значительно упрощают вашу работу с программированием.