Телеграм бот на Python / #4 - SQLite3. Подключение к базе данных

Поделиться
HTML-код
  • Опубликовано: 7 июн 2024
  • За урок вы выполните подключение базы данных к вашему Телеграм Боту. Вы подключите БД SQLite3, но в будущем по схожему принципу сможете подключать любые другие БД.
    ✅ Полезные ссылки:
    - Урок на сайте itProger: itproger.com/course/telegram-...
    ⏰ Тайм-коды:
    00:00 - Начало
    01:10 - Подключение SQLite3
    03:10 - Создание таблицы
    06:15 - Получение имени и пароля
    10:00 - Добавление пользователя в БД
    17:05 - Список всех пользователей
    21:20 - Заключительная часть
    ✔ Сообщество программистов: itproger.com/
    ✔ -------------
    Вступай в группу Вк - prog_life 🚀
    Группа FaceBook - goo.gl/XW0aaP
    Инстаграм itProger: / itproger_official
    Instagram: / gosha_dudar
    Telegram: t.me/itProger_official
    Twitter - / goshadudar
    - Уроки от #GoshaDudar 👨🏼‍💻
    - Все уроки по хештегу #goshaLessons

Комментарии • 264

  • @chesnokov4132
    @chesnokov4132 Год назад +8

    Спасибо огромное за курс! После django и других работ, это кажется просто кайфом.Я очень жду продолжения!! Удачи

  • @user-di2td7dc3g
    @user-di2td7dc3g 11 месяцев назад +22

    Это лучший ютубер которого я видел ты очень круто объясняешь темы очень крутой курс смотрю каждое видео и повторяю ща тобой пытаюсь разобраться в каждой строчке очень долго искал такого и не мог найти но ты делаешь невероятное) спасибо большое,удачи в развитии канала

  • @artembezrukov9799
    @artembezrukov9799 7 месяцев назад +2

    Супер тема!!! Очень полезно для меня. Спасибо большое!

  • @user-jr6lo7ix7k
    @user-jr6lo7ix7k 4 месяца назад +2

    Ребята огромная вам благодарность что так круто преподаете все!!!! Спасибо большое отличный курс!

    • @anonymprog
      @anonymprog 4 месяца назад

      курсы хорошие, но в этом видео большая путанница с базой данных, и автор усложнил заполнение полей

  • @Markisi0
    @Markisi0 11 месяцев назад +41

    Чтобы не плодить лишний раз глобальные переменные, можно передавать третьим аргументом имя пользователя
    bot.register_next_step_handler(message, fill_user_pass, name)
    в этом случае функция fill_user_pass будет принимать не один аргумент - message, а два, например, user_name.
    def fill_user_pass(message, user_name):
    Так можно увеличивать их количество от функции к функции, но лучше эти объекты организовывать в список или словарь

    • @Uideas
      @Uideas 2 месяца назад +2

      Да, это хорошее решение. Только в случае, когда у тебя много параметров, ты заколебешься их прописывать. В этом случае уже с глобальными можно

    • @cr_obito
      @cr_obito 25 дней назад +1

      Нельзя использовать глобальные переменные в проектах в которых есть несколько пользователей.
      Потому что если будет параллельно выполняться несколько запросов, нужные данные просто попадут в другой id !

  • @grigoriyivanov3741
    @grigoriyivanov3741 Год назад

    Гоша, привет. Очень круто.

  • @elezthemdev
    @elezthemdev Год назад +4

    А так курсы топ, спасибо Гоше!

  • @user-oh8yh7gy5f
    @user-oh8yh7gy5f Год назад +1

    Уроки супер, очень легко и понятно. Рахмет!

    • @Beik0
      @Beik0 10 месяцев назад

      "Рахмет" это спасибо? И если да, то на каком языке?

    • @user-oh8yh7gy5f
      @user-oh8yh7gy5f 10 месяцев назад

      @@Beik0 Казахский язык 🇰🇿

    • @Beik0
      @Beik0 10 месяцев назад

      @@user-oh8yh7gy5f спасибо

  • @siarheiulas6969
    @siarheiulas6969 Год назад

    Спасибо за видео!

  • @daniilhalytskyi8562
    @daniilhalytskyi8562 Год назад +30

    Я думаю переменную name лучше делать не глобальной, а передавать из функции user_name в user_pass напрямую. Можно третьим аргументом в метод bot.register_next_step_handler(message, user_pass, name) добавить. Там бесконечное количество переменных можно передавать таким образом.

    • @alihansadulaev4351
      @alihansadulaev4351 Год назад

      без библиотеки не будет работать???

    • @zp4355
      @zp4355 Год назад +3

      @@alihansadulaev4351 Без какой? Зачем библиотека для этого?

  • @nikpom458
    @nikpom458 Год назад +6

    Спасибо за видео! У меня вопрос, как отчистить список пользователей?

  • @Markisi0
    @Markisi0 11 месяцев назад +32

    Чтобы избежать ошибки
    sqlite3.OperationalError: no such column:
    нужно было просто добавить кавычки
    f'INSERT INTO users (name, pass) VALUES ("{user_name}", "{password}")'

    • @user-zw9cl2lj6h
      @user-zw9cl2lj6h 10 месяцев назад +3

      а ещё лучше вообще не использовать f-строки в SQL-запросах, поскольку это небезопасно и в целом является неприемлемой практикой

    • @Markisi0
      @Markisi0 10 месяцев назад +1

      @@user-zw9cl2lj6h а чем обычная строка безопаснее f-строки?

    • @user-zw9cl2lj6h
      @user-zw9cl2lj6h 10 месяцев назад +1

      @@Markisi0, читал, что f-строки уязвимы перед SQL-инъекциями

    • @AlexGold
      @AlexGold 10 месяцев назад +1

      вай брат спасибо как ты написал работает как он написал выдает sqlite3.OperationalError: 1 values for 2 columns, не знаешь что делать в таком случае?

    • @Markisi0
      @Markisi0 10 месяцев назад +2

      @@AlexGold пожалуйста! Судя по описанию ошибки, у тебя идёт попытка вставить одно значение в 2 колонки, то есть забыл где-то второе значение указать. Количество значений должно соответствовать количеству столбцов

  • @frixll
    @frixll 11 месяцев назад

    У меня вопрос 8:24 почему когда вы снова ввели /start то сообщение не появилось, оно же вроде не должно обрабатывать в 1 раз вы вели старт или во 2 раз

  • @nic-ori
    @nic-ori Год назад +1

    Thanks.

  • @user-se2il9cq8t
    @user-se2il9cq8t 4 месяца назад +8

    почему у меня на 5:22 не поменялся цвет с зеленого на такой как в ролик?

    • @dmitruch1939
      @dmitruch1939 3 месяца назад

      Скорее всего у него пользовательская тема, которая перекрашивает текст в разные цвета даже не смотря на кавычки, если это SQLite3 команда. У меня тоже так, так как я не устанавливал темы

  • @fit9009
    @fit9009 Год назад

    лучший

  • @JohnHarmRussia
    @JohnHarmRussia 7 месяцев назад +3

    ошибка на 15:25 была связана с синтаксисом SQL, можно было просто обрамить в двойные кавычки вот так (я так и исправил и сработало, а уже потом увидел ваше решение):
    cur.execute(f'INSERT INTO users (name, pass) VALUES ("{name}", "{password}")')

  • @stouneespring6051
    @stouneespring6051 Год назад +5

    если я хочу сделать допустим бота который будет хранить некие данные пользователя, как сделать так, чтобы каждому пользователю присваивалась своя бд?

    • @1NewUser1
      @1NewUser1 Год назад +2

      Тебе нужно просто создать таблицу с атрибутами id, user_name, user_id.... (И какие хочешь данные) и просто делаешь запросы на пример по user_id(т.к он уникален у каждого пользователя телеги) и с него берёшь всё данные которые тебе нужны

  • @homeaccount4100
    @homeaccount4100 Месяц назад

    Подскажите пожалуйста, как можно подсвечивать SQL команды в PyCharm Community? Может плагин дополнительный нужен.

  • @BarBrain1
    @BarBrain1 Год назад +2

    У телеграма есть ограничения, например на кол-во сообщений в секунду, как будете обрабатывать тротл?

    • @TimQ2
      @TimQ2 Год назад

      отправится второе сообщение с тем, что не вместилось в первое

  • @andreimix
    @andreimix Год назад +6

    Надеюсь тут будет про хостинг бота и базы, а то у меня с этим постоянно проблемы

    • @alovian7541
      @alovian7541 10 месяцев назад

      Привет, у меня та же проблема. Ты нашёл решение?

    • @Asadabualek
      @Asadabualek 7 месяцев назад

      @@alovian7541привет за 2 месяца нашел решение?

  • @czdiejengco
    @czdiejengco Год назад +15

    У меня почему то не раскрашивается работа с sqlite3.Как исправить?
    CREATE TABLE IF NOT EXISTS users (id int auto_increment primary key, name varchar(50), pass varchar(50))
    Вот это почему то пишется полностью зеленым а не так как на видео.

    • @standoff2_yt77
      @standoff2_yt77 Год назад +2

      Тоже самое. Смог решить проблему?

    • @czdiejengco
      @czdiejengco Год назад

      @@standoff2_yt77 не смог.Как я понял это из за того что это бесплатная версия и некоторые функции недоступны(

    • @user-pg2kk4zx8o
      @user-pg2kk4zx8o Год назад +1

      ​@@czdiejengco нет, у меня тоже самое, оно должно работать. У меня тоже зелёное, но робгтает

    • @yuriismakota9574
      @yuriismakota9574 11 месяцев назад

      Нашли решение? У меня тоже самое...

    • @user-ke2pc4gt6z
      @user-ke2pc4gt6z 10 месяцев назад

      'CREATE TABLE IF NOT EXISTS qarizdarlar (id INTEGER PRIMARY KEY AUTOINCREMENT, name VARCHAR(50))'

  • @insanvoblago
    @insanvoblago Год назад

    Когда будет видео про новый обновленный движок годот 4?

  • @maxgaming190
    @maxgaming190 4 месяца назад

    Друг мой,привет.Полезнве знания,я начинаю свой путь с твоих уроков. Скажи пожалуйста,таблица со списком пользователей доступна только разработчику? А то будет не очень,если у пользователя будут выводиться ники и пароли других юзеров)

    • @anonymprog
      @anonymprog 4 месяца назад

      привет, можно сделать такую функцию для админа, а у обычных пользотваелей убрать

  • @lolikfas2614
    @lolikfas2614 10 месяцев назад +1

    почему при создании таблицы, в cure.execute весь текст внутри зеленый, int не воспринимает, как исправить, и почему нельзя сразу в видео показать, что нужно доп установить для работы в пайчарм

  • @soslantadtaev2627
    @soslantadtaev2627 8 месяцев назад +3

    Ребята, подскажите, почему callback_data у меня вообще не работает? всё сделал как в видео, но почему-то вообще не работает(кнопка показывается, но ничего не вызывается)

    • @maloy.8313
      @maloy.8313 6 месяцев назад

      нашел ответ?

  • @user-tp2jy2lr4l
    @user-tp2jy2lr4l 17 дней назад

    Доброго вечера, а можно урок как в телеграм боте отправлять новости. ? К примеру создать простого бота который будет отправлять на Гугл диск для прайсов на товар. А если мы обновили прайсы то мы это как новость написала в боте, и всем кто использует бот в чат пришло уведомления

  • @Lepeha-py2gn
    @Lepeha-py2gn 7 месяцев назад

    Возможно ли как то открыть sql таблицу созданную в коде в приложении SQLiteStudio?

  • @_Azimut
    @_Azimut 7 месяцев назад +5

    как сделать так, что б в кавычках тоже была подсветка синтаксиса, как на видео? У меня вся строка - 'CREATE TABLE IF...' зеленого цвета, ошибки не подсвечиваются(((

    • @kiso4974
      @kiso4974 6 месяцев назад

      такая же фигня

    • @kiso4974
      @kiso4974 6 месяцев назад

      короче я пишу в vs коде я просто скачал ультилиту SQlite и всё заработало

  • @MrRados
    @MrRados 7 месяцев назад

    Почему у меня при создании таблицы, когда в кавычки ввожу команду, ничего не работает? Строка даже не подсвечивается

  • @DistinctMontage
    @DistinctMontage 3 месяца назад +2

    у меня
    |table users has no column named name |
    что делать?

    • @CrashRollers
      @CrashRollers 3 месяца назад

      такая же проблема

  • @niklz5297
    @niklz5297 9 месяцев назад +1

    ПОМОГИТЕ, что делать, если программа, после того как я ввожу старт в боте, не может найти атрибут коннект?

  • @Dmitrijs.Skorohodovs
    @Dmitrijs.Skorohodovs Год назад

    Помогите ! После того как 1-ый пользователь был создан и добавлен в базу данных - если перезагружаю телеграмм бота, то он уже не предлагает регистрировать пользователя, а просто показывает список с 1-ым пользователем. Только после удаления базы данных, можно повторить процедуру. В чём может быть проблема?

    • @Lnx_Mint
      @Lnx_Mint 4 месяца назад

      А это не проблема. Файл БД хранит данные независимо от перезагрузки бота. Надо тогда удалять юзера, напр. прописать в коде что при остановке бота БД очищается.

  • @nikitamorozov8065
    @nikitamorozov8065 2 месяца назад

    Ребята, а подскажите как сделать, чтоб вот эта получившаяся база отправлялась мне в личку, а не отображалась в диалоге пользователя и бота? Можно допустим оставить кнопку скажем (отправить) и при нажатии база уходила бы сообщением на мой акк в телеге. И еще прикольно было бы, чтоб в базу записывалась дата и время. Но это я думаю сам сделаю )))

  • @AleksChessShow
    @AleksChessShow 6 месяцев назад +5

    Сперва начал проходить курс питону у одного блогера, не понравилось перешёл к Гоше и тут всё прекрасно.
    Начал проходить тут связанный с ботами и понял, что пора искать другой канал.
    Ощущение, что ты просто постарался сделать максимально ёмко эту работу. Просто напихал всего без особых объяснений.
    Курс по Питону был прекрасен, а здесь наскоряк что то слепленное.
    И пожалуйста, если ты пишешь код ,а он не работает - не показывай его. Ты просто издеваешься над нами. Мы переписываем, пытаемся разобраться как работает. Ты запускаешь и....оно просто не работает. Так вырежи это, зачем тратить время и силы
    Спасибо за курс по питону, но этот курс, я пожалуй, пройду в другом месте

  • @em_pty_
    @em_pty_ Месяц назад

    4:14 как переходит из строки в команду?

  • @user-oc3bw2ec7h
    @user-oc3bw2ec7h 10 дней назад

    не могу понять, почему у меня кнопка старт не отображаться в боте
    + почему то при создании новой записи у меня в нее ID b Name пишутся как null

  • @SergeyLuchin
    @SergeyLuchin 10 месяцев назад

    Почему когда я очищаю историю у меня нет кнопки Start

  • @user-gr6ht5qd2t
    @user-gr6ht5qd2t Год назад +2

    Что произошло на 4:04? 12 строка cur.execute() прописывается зеленым шрифтом и ничего не делает.

    • @SlouN01
      @SlouN01 Год назад

      тоже самое
      sqlite3.OperationalError: неполный ввод, вот такая вот ошибка
      может быть обновили модуль...

    • @kizuko4149
      @kizuko4149 Год назад

      Скорее всего вы используете бесплатную версию пайчарм, в которой не поддерживается база данных sql

  • @Ai_crearor
    @Ai_crearor 7 месяцев назад

    Почему нет описания функции?🕵️‍♂️

  • @user-vo9cx7cu5m
    @user-vo9cx7cu5m 6 месяцев назад

    А как эту таблицу отчистить потом?

  • @ghosttt4299
    @ghosttt4299 Год назад

    Как сделать вечные кнопки? У меня они один раз нажимаются, а дальше не работают

    • @romanvishnyakov6835
      @romanvishnyakov6835 Год назад

      Там обработчик событий, срабатывает и на кнопки кидает. А в функции кнопок не прописано, что делать, после того как кнопка нажата

  • @volodymyrm5326
    @volodymyrm5326 10 месяцев назад

    Думаю на Ruby! вигляд малоб кращий.
    А так норм)

  • @skzoneloveee
    @skzoneloveee Год назад +1

    Гоша, здраствуйте!
    Я использую пайтон в Visual Studio (от Microsoft), но когда я ввожу "import telebot" выдает ошибку и соответственно дальше код не действителен, что делать в такой ситуации?

    • @skzoneloveee
      @skzoneloveee Год назад

      @@user-nw3ed8hx5d Спасибо большое

    • @alihansadulaev4351
      @alihansadulaev4351 Год назад

      ​@@skzoneloveee чуваак, что он ответил? у меня такая же проблема

    • @skzoneloveee
      @skzoneloveee Год назад +1

      @@alihansadulaev4351 он написал "Напиши в консоли pip import telebot" если не ошибаюсь, я уже не помню😅

    • @user-oy7wu5yx2w
      @user-oy7wu5yx2w Год назад +1

      Ты его не установил

  • @helenblossom4648
    @helenblossom4648 3 месяца назад

    no such table: users чо делать подскажите пж

  • @artemalferov4020
    @artemalferov4020 10 месяцев назад +3

    Я сейчас скажу возможно не самое популярное мнение, но все таки - sqlite3 не сработает по модели mysql, там есть свои моменты, например: id auto_increment p...k, - не будет вводить значения в таблицу, при выборке мы получим значение None, избежать этого можно так - id primary key, name varchar(50), ... либо так - id primary key autoincrement, name varchar(50), ... во втором случае знак "земля" в слове autoincrement не нужен, иначе будет ошибка синтаксиса.

    • @evgeniyo2560
      @evgeniyo2560 9 месяцев назад +1

      точнее id integer primary key autoincrement. другие варианты у меня не работали

    • @dmitrymakarenko8975
      @dmitrymakarenko8975 4 месяца назад

      @@evgeniyo2560 4 часа изнасилования мозга и я пришел в комменты поделиться мудростью, чтобы обнаружить, что кто-то уже ответил
      Знаете, что находит гугл по запросу sqlite primary key Null? Нифига он не находит

  • @KrykkOff
    @KrykkOff 2 месяца назад +4

    Если у вас на моменте 7:42 выдало ошибку:
    cur.execute(f'CREATE TABLE IF NOT EXISTS users (id int auto_increment primary key, name varchar(50), pass varchar(50)')
    sqlite3.OperationalError: incomplete input
    Решение:
    Надо просто использовать другой способ форматирования строки, например, конкатенацию строк:
    query = 'CREATE TABLE IF NOT EXISTS users (id int auto_increment primary key, name varchar(50), pass varchar(50))'
    cur.execute(query)
    Ответ мне помогла найти GPT, поэтому я сам не до конца догнал почему это так работает, а как Гоша написал не работает... GPT внятно не ответила...
    ГОША ПОМОГИ ПОЖАЛУЙСТА ПОНЯТЬ почему так?

  • @DR-rs9ux
    @DR-rs9ux 4 месяца назад

    Не получается. Пишет что нужен пайтон профессионал для использования sql

  • @drekouli4291
    @drekouli4291 14 дней назад

    В sqlite нет varchar(50). Есть только text, а ограничение прописывается отдельно, иначе не будет работать

  • @alexmais9549
    @alexmais9549 Год назад +2

    В документации по psycopg2 написано что нельзя использовать конкатенацию строк(+) или интерполяцию строк(f-строка), возможно это относиться и к SQLite3

    • @user-eo8jh4ro8j
      @user-eo8jh4ro8j 8 месяцев назад

      Да, в sqlite это тоже делать нельзя, так как это создаёт уязвимость для sql-инъекций. Для таких случаев нужно использовать параметризированный запрос в рамках метода execute

  • @AlekseevPavel77
    @AlekseevPavel77 10 дней назад

    Что делать если 'CREATE TABLE OF NOT EXISTS' остаётся зелёного цвета, а так же при запуске не создаётся папка с расширением sql как указано в видео

    • @igor_keler5954
      @igor_keler5954 7 дней назад

      У тебя ошибка, не OF а IF. У меня тоже команда остается зелёного цвета, но всё работает

  • @w1ndyyy71
    @w1ndyyy71 5 месяцев назад

    а как очистить эту строку?

  • @Volton00
    @Volton00 4 месяца назад

    Почему может переменная name быть None а не то что пишу в тг бот

  • @DadundddaD
    @DadundddaD Год назад

    Пишет: sqlite3.OperationalError: database is locked

  • @Saint404www
    @Saint404www 3 месяца назад

    объясняешь круто, но я бы просто передал name 2 значением.

  • @laum5645
    @laum5645 3 месяца назад

    не показывает списка пользователей в телеграмме что делать?

  • @user-xv1vz6fq8m
    @user-xv1vz6fq8m Месяц назад

    У меня, после нажатия на список пользователей, выводит две одинаковые стоки с именем и паролем. из за чего может быть?

    • @kotik7493
      @kotik7493 13 дней назад

      из-за того, что при двух стартах бота вводил один тот же пароль и логин

  • @zaimoflyfe4222
    @zaimoflyfe4222 Год назад

    форматирование через f строку открывает возможность для sql инъекций!!!!!!!!!

  • @valecr228
    @valecr228 4 месяца назад

    появилась проблема в том что этот список не открывается даже если все правильно..

  • @oddww
    @oddww Год назад +4

    cur.execute('CREATE TABLE IF NOT EXISTS users (id int auto_increment primary key, name varchar(50), pass varchar(50)')
    sqlite3.OperationalError: incomplete input
    помогите пожалуйста, что не так?

    • @romanvishnyakov6835
      @romanvishnyakov6835 Год назад

      Закинь в чат GPT

    • @DadundddaD
      @DadundddaD Год назад +3

      Вот что мне ответил чат GPT:
      The code snippet is missing a closing parenthesis ')' for the CREATE TABLE statement. The correct code should be:
      cur.execute('CREATE TABLE IF NOT EXISTS users (id int auto_increment primary key, name varchar(50), pass varchar(50))')
      Note the closing parenthesis at the end of the statement.
      У нас с тобой не хватает еще одной скобки перед закрывающим апострофом '

    • @elezthemdev
      @elezthemdev Год назад

      @@DadundddaD се равно также

    • @elezthemdev
      @elezthemdev Год назад

      крч там еще 1 скобку напиши в конце

    • @elezthemdev
      @elezthemdev Год назад +2

      @@DadundddaD кстати заработало, но у меня оно зелёным подчеркнуто)

  • @ViralVideoEditions
    @ViralVideoEditions Год назад +8

    Гоша, почему у меня это поле с Execute просто зеленое внутри скобок, как обычный текст? А у тебя выделено как команды. При том, что всё равно работает. Что это?

    • @user-to5fw8dx7q
      @user-to5fw8dx7q Год назад +3

      привет, решил проблему? просто у меня такая же беда

    • @kizuko4149
      @kizuko4149 Год назад +1

      Скорее всего вы используете бесплатную версию пайчарм, в которой не поддерживается база данных sql

    • @user-jy4mt8or3p
      @user-jy4mt8or3p Год назад +1

      Привет👋 У него текст выделен как ошибка.

    • @user-sr3og9ix7s
      @user-sr3og9ix7s 10 месяцев назад +1

      Это наверное просто плагин такой. Его можно скачать в пайчарме.

  • @liebeDURASTA
    @liebeDURASTA 9 месяцев назад

    Не подсвечивается желтым после "execute". Что делать??? Не работает как в видео

    • @rafe7182
      @rafe7182 9 месяцев назад

      Ты нашел ответ? Если да то подскажи пожалуйста в чем проблема

  • @williwonka1747
    @williwonka1747 11 месяцев назад +2

    Почему то не работает. Строка, там где cur.execute('CREATE TABLE IF NOT EXISTS users (id int )'), она не становится желтой и не работает, она просто тупо зеленая

    • @fovir_fresh
      @fovir_fresh 11 месяцев назад +3

      cur.execute('CREATE TABLE IF NOT EXISTS users(id INTEGER PRIMARY KEY AUTOINCREMENT, name VARCHAR(50), password VARCHAR(50))')

    • @fovir_fresh
      @fovir_fresh 11 месяцев назад +1

      Попробую это ввести должно заработать.

    • @slowpokeui7683
      @slowpokeui7683 9 месяцев назад

      @@fovir_fresh спасибо

  • @user-ex2wd8kv1h
    @user-ex2wd8kv1h 10 месяцев назад +1

    а как задеплоить бота вместе с базой данных? я пытаюсьзадеплоить обычного бота- вышло. А тот что с базой данных - не вышло

    • @alovian7541
      @alovian7541 10 месяцев назад

      То же самое, сама база данных почему-то не обновляется после выргрузки бота на сервер. Давай если кто-то из нас найдёт решение, друг другу напишем его

    • @user-ex2wd8kv1h
      @user-ex2wd8kv1h 10 месяцев назад

      уже нашел. Отключи все консоли, и заново запусти бота. И впиши в бота прокси

    • @alovian7541
      @alovian7541 9 месяцев назад

      @@user-ex2wd8kv1h ого, а ты получается вообще с хоста убрал бот? И какой прокси используешь? Поделись пожалуйста

    • @user-ex2wd8kv1h
      @user-ex2wd8kv1h 9 месяцев назад

      я хз честно, мне чел дал куок кода, я вставил и заработало.
      ​@@alovian7541

  • @opex51
    @opex51 Год назад

    16:30 у меня так не работает, я сделал так:
    cur.execute("""INSERT INTO users(name, pass) VALUES(?, ?)""", (name, password))

    • @user-pb3cb6ek9l
      @user-pb3cb6ek9l 11 месяцев назад

      Самое первое что я вижу - это 4 кавычки. Ты нафига их 4 поставил? Ставь либо 1, либо двойные.

  • @user-jy7qj7eu9s
    @user-jy7qj7eu9s 4 месяца назад

    у многих не поменялся цвет при создании таблицы и у меня в том числе, для тех кто не знает как решить эту проблему, на сколько я понял нужна платная версия пайчарма, у кого другая инфа, буду рад если поделитесь

  • @Qwex1992
    @Qwex1992 Год назад +1

    ...в базе данных всё закодировано, поэтому открывать мы ее не будем
    а жаль, если бы открыли, то увидели, что у id значения NULL

  • @vladborod8724
    @vladborod8724 11 месяцев назад

    как вывести ID?

  • @elsakuray3733
    @elsakuray3733 5 месяцев назад

    cur.execute('CREATE TABLE IF NOT EXISTS users (id, ...') у меня все условия в скобках считываются как обычная строка, что мне делать?

    • @armanvoskanyan816
      @armanvoskanyan816 4 месяца назад

      cur.execute("CREATE TABLE IF NOT EXISTS users (id int auto_increment primary key, name varchar(50), pass varchar(50))")

    • @armanvoskanyan816
      @armanvoskanyan816 4 месяца назад

      вот рабочая строка

    • @elsakuray3733
      @elsakuray3733 4 месяца назад

      @@armanvoskanyan816 нет, у меня всё равно строка обычная

  • @user-ph3ic9ji3k
    @user-ph3ic9ji3k 9 месяцев назад +4

    Был интересен вот этот вопрос:
    coursor.execute("INSERT INTO users (name, pass) VALUES (?, ?)", (name, password))
    почему здесь нельзя использовать форматированную строку по типпу f'{name, pass}'
    Вот что мне подсказали
    Эту штуку нельзя сделать т.к. пользователь мог бы ввести вот такую команду и дропнусть все базу SQL т.к. была бы воспринята как команда
    Это называется SQL инъекция вот ее пример:
    name = "John'; DROP TABLE users; --"
    sql = f"INSERT INTO users (name, pass) VALUES ('{name}', '{password}')"
    Да и как заметили вместо симоволов %s оказалось можно использовать ( ?, ?) что чуть чуть удобнее

  • @AIRECOVER
    @AIRECOVER 6 месяцев назад

    Как сделать чтобы человек 1 раз ввел регистрацию а потом не вводил?

  • @alekseysivchik
    @alekseysivchik 3 месяца назад +1

    не очень понял почему, но он все время пишет введите пароль

    • @SemyonBorodin
      @SemyonBorodin Месяц назад +1

      В теле функции user_name
      внутри должно быть bot.register_next_step_handler(message, user_pass)
      У меня сначала было написано bot.register_next_step_handler(message, user_name) и выводило бесконечно "введите пароль", пока не заметил

  • @Narlit
    @Narlit 11 месяцев назад +1

    Как включить подсветку внутри кавычек?

  • @yuliaorlova6918
    @yuliaorlova6918 7 месяцев назад

    TypeError: 'list' object is not callable, вот что мне даёт

    • @multyplicathion3485
      @multyplicathion3485 4 месяца назад

      Ты используешь handlers а нужно handler

  • @elezthemdev
    @elezthemdev Год назад

    у меня почему-то ошибка на ( callback_data ) кто знает решение?

    • @elezthemdev
      @elezthemdev Год назад

      крч там нужно Button)

  • @fovir_fresh
    @fovir_fresh 11 месяцев назад +2

    В 35 линии неправильно написано вообще все, выдает сранную ошибку, вот исправленный вариант cur.execute('INSERT INTO users(name, password) VALUES (?, ?)', (name, password))

    • @Ze1myy
      @Ze1myy 11 месяцев назад

      Спасибо уж.

    • @user-lw6zx9yq2m
      @user-lw6zx9yq2m 11 месяцев назад

      Не помогает. Выдало вот что:
      cur.execute('INSERT INTO users(name, password) VALUES (?,?)', (name, password))
      sqlite3.OperationalError: no such table: users

    • @semenosemenitel1046
      @semenosemenitel1046 11 месяцев назад

      Спасибо, лучший

    • @_cloud_final_401
      @_cloud_final_401 10 месяцев назад

      Посмотри в conn = sqlite3.connect() возможно просто не правильно записал сам файл

    • @user-jb9jy6hn5e
      @user-jb9jy6hn5e 6 месяцев назад

      Пишу cur.execute('INSERT INTO pupils (p_name, p_sname) VALUES (?,?)', (user_name, user_sname )) выдает Error binding parameter 0 - probably unsupported type.

  • @Roman1971ism
    @Roman1971ism 2 месяца назад

    А нельзя было создать подключение к БД в шапке файла перед декораторами самого бота? Тогда в функциях не надо было переписывать кучу одинакового кода. Тогда
    with conn:
    cur.execute('SELECT.......')
    всего надо прописать ну и вернуть cur.execute('SELECT.......') естественно?

  • @topmazila8766
    @topmazila8766 10 месяцев назад

    Я уже в агонии пишу этот под каждым видео в надежде на помощь.
    Мой бот работает с геолокацией получаемой через location но у меня есть необходимость разграничить координаты полученные через геолокацию телефона и координаты полученные через кнопку телеграм "выбрать вручную", которая появляется если отключена геолокация на телефоне

    • @zhabitok
      @zhabitok 10 месяцев назад

      К chat gpt обращался?

    • @topmazila8766
      @topmazila8766 10 месяцев назад

      @@zhabitok послал меня и сказал только обычная локация request_location

  • @watenglish
    @watenglish 2 месяца назад

    Здравствуйте, подскажите пожалуйста. Я новичок, хочу написать программу небольшую и у меня возник вопрос. например 1: как тебя зовут? 2: Иван(а) 1: сколько тебе лет? 2; 12 лет(б). 1; Меня зовут (а) и мне (б). как это сделать? в питоне? чтобы быть в последнем сообщении отсылку делать на сообщения. могу код прислать,если надо. подскажите пожалуйста

  • @moydomsnylia
    @moydomsnylia 9 месяцев назад

    Кто может помочь создать бота

  • @dantan7790
    @dantan7790 11 месяцев назад

    Что делать если не создается файл??????

    • @SerHHf
      @SerHHf 10 месяцев назад +1

      Такой же вопрос ты тоже с pydroid работаешь

  • @lolikfas2614
    @lolikfas2614 10 месяцев назад

    cur.execute(f"INSERT INTO users (name, pass) VALUES('{name}', '{password}')")
    sqlite3.OperationalError: no such table: users
    КАК ИСПРАВИТЬ ДАННУЮ ОШИБКУ?

    • @Murphy403
      @Murphy403 10 месяцев назад

      ты ролик досмотрел ? там все у него тоже ошибка была из за данной строки и он сменил ее

    • @xaker2832
      @xaker2832 6 месяцев назад

      cur.execute("INSERT INTO user (name, pass) VALUES (?, ?)", (name, password))

    • @user-cs2wt6lu7t
      @user-cs2wt6lu7t 3 месяца назад

      Нужно посмотреть в самом начале, где обращается к cur.execute и найти что написано в этой строке. И исправить на users.

  • @markbackulin2737
    @markbackulin2737 4 месяца назад

    не получилось создать таблицу с sql, кто знает решение проблемы?

    • @anonymprog
      @anonymprog 4 месяца назад

      что не получилось?

  • @user-mj3xp7ll6s
    @user-mj3xp7ll6s 11 месяцев назад +1

    Один моментик, я решил вывести не только имя и пароль, но и id. В сообщении во всех строках было написано ID: None

    • @reg1675
      @reg1675 11 месяцев назад

      +

    • @user-dl3oy9fu1y
      @user-dl3oy9fu1y 10 месяцев назад

      то же самое

    • @user-jb9jy6hn5e
      @user-jb9jy6hn5e 6 месяцев назад +1

      нужно прописать id INTEGER PRIMARY KEY AUTOINCREMENT

    • @user-mj3xp7ll6s
      @user-mj3xp7ll6s 6 месяцев назад

      @@user-jb9jy6hn5e спасибо, хоть и спустя 5 месяцев

  • @andrewv.7663
    @andrewv.7663 4 месяца назад

    Можете подсказать - создатель бота получает IP пользователя телеграм?

  • @shakursosihui9687
    @shakursosihui9687 6 месяцев назад

    Kai Angel feat 9mice - SPRAY

  • @se1dhe
    @se1dhe Год назад +6

    а что будем делать, когда пользователей будет больше, чем вместится в одно сообщение?)

    • @twwisty3403
      @twwisty3403 Год назад +1

      Отправиться второе сообщение в котором будет то, что не вместилось в первое

    • @zp4355
      @zp4355 Год назад

      Зачем вообще отправлять пользователю список пользователей? Он же это просто для примера показал

    • @se1dhe
      @se1dhe Год назад

      @@zp4355 Это зависит от ТЗ. Иногда нужно, например, не влезая в интерфейс управления бд - назначить админа, или изменить его роль. Вариаций масса

  • @ghosttt4299
    @ghosttt4299 Год назад

    Как добавить в бота оплату? Типо киви

    • @twwisty3403
      @twwisty3403 Год назад +1

      Это будет в каком то из видео из этого курса

  • @user-km2gr9mf9q
    @user-km2gr9mf9q 10 месяцев назад

    я не понимаю почему у меня после того как ввел пароль пишет опят ьвведите пароль и так до бесконечности

    • @7hsjshaba
      @7hsjshaba 10 месяцев назад

      тоже самое ! как решил ?

    • @user-km2gr9mf9q
      @user-km2gr9mf9q 9 месяцев назад

      @@7hsjshaba сорян, не помню, могу код скинуть

    • @7hsjshaba
      @7hsjshaba 9 месяцев назад

      @@user-km2gr9mf9q было бы супер

  • @stepasha5016
    @stepasha5016 Год назад

    13:30

  • @Funto-zl6ly
    @Funto-zl6ly 2 месяца назад

    Как зделать 5 конечную звезду как в видео 21:05 в 50 строке

  • @radalik01
    @radalik01 4 месяца назад

    Кто нибудь помогите!!!!!! Как устранить ошибку unable to resolve table “users”

    • @sisir5743
      @sisir5743 4 месяца назад

      Чату GPT скорми код и спроси насчёт ошибки, он поможет наверняка

  • @user-ds6jv6mk6v
    @user-ds6jv6mk6v 2 месяца назад +1

    Ничего не работает 😢

  • @theleliks4668
    @theleliks4668 Месяц назад

    ребят мой вам совет. зачастую все ваши проблемы в коде это из-за не внимательности.
    В 7:30 комманда
    cur.execute('CREATE TABLE IF NOT EXISTS users (id int auto_increment primary key, name varchar(50), pass varchar(50)')
    мне выдавало ошибку по типу: sqlite3.OperationalError: и тд
    так вот. у меня ошибка была в том что я просто забыл закрыть скобки в конце...
    Для вас задание где я ошибся в коде...

  • @bah9250
    @bah9250 Год назад +1

    Привет, почему именно telebot ,а не aiogram?

    • @twwisty3403
      @twwisty3403 Год назад

      Он легче для понимания

    • @user-go9sv1id2n
      @user-go9sv1id2n Год назад +2

      @@twwisty3403 aiogram асинхронный, а telebot нет, зачем учить полное г@вно ????

    • @twwisty3403
      @twwisty3403 Год назад +3

      @@user-go9sv1id2n ясным язык было сказано, он легче для понимания и с каких пор асинхронность показатель величия

    • @user-pg2kk4zx8o
      @user-pg2kk4zx8o Год назад

      ​@@user-go9sv1id2n это не полное говно, надо знать и первое и второй.

    • @user-pg2kk4zx8o
      @user-pg2kk4zx8o Год назад

      ​@@user-go9sv1id2n что такое асинхронный?

  • @zloytu_771
    @zloytu_771 5 дней назад

    автор просто меняет кавычки на двойные
    я: что здесь бл происходииииит!!!!

  • @s1m156
    @s1m156 11 месяцев назад +3

    Можно было не мудрить с %. Вот так все заработало
    cur.execute(f"INSERT INTO users (name, pass) VALUES('{name}', '{password}')")

  • @turdiev-ng9hx
    @turdiev-ng9hx 9 месяцев назад

    окей а как потом очистить этот список??

    • @funnylaunchpad3609
      @funnylaunchpad3609 9 месяцев назад

      users.clear() 😀😀😀😀

    • @funnylaunchpad3609
      @funnylaunchpad3609 9 месяцев назад

      DELETE * FROM users

    • @timolar
      @timolar 9 месяцев назад

      @@funnylaunchpad3609 пишет ошибка синтаксиса возле *

  • @fromTARDIS
    @fromTARDIS 5 месяцев назад

    Чувак, конструктивчик:
    1. Организуй список или словарь.
    2. Я понимаю, что питон - язык с динамической типизацией, но очень режут глаза одинарные кавычки.
    3. Залог качественного и читабельного кода - это, когда у тебя есть ряд функций и они исполняют по одной индивидуальной задаче. Когда захламляешь код такими функциями а-ля user_pass, в которой ты и пароль принимаешь и записываешь ВСЕ данные в базу, ну такое. Будь это реальный проект можно было бы ой как сильно потеряться в подобных методах.🙃

  • @treshertreee3967
    @treshertreee3967 Год назад

    О