Нет, если он отправит БД, все данные будут у пользователя. Но отправлять базу данных на github считается дурным тоном. Так, что для отправки этого кода в github и дальнейшей работе с его исходниками, придется либо автору написать отдельный код, который будет отвечать за создание БД или тебе самому придется создавать. А как ты будешь создавать ее, решать тебе) P.S. надеюсь помог в вопросе
Помогите пожалуйста, в меня точно так же как на видео, только ошибка File "C:\Bot_on_Aiogram\main.py", line 17, in start if (not db.user_exists(message.from_user.id)): File "C:\Bot_on_Aiogram\db.py", line 14, in user_exists result = self.cursor.execute("SELECT * FROM 'users' WHERE 'user_id' = ?", (user_id,)).fetchall() sqlite3.OperationalError: no such table: users
брат скажи если нашел решение, я уже все что можно попробовал, и директорию менял, тыщу раз пересоздавал и вручную бд ставил, все равно он не видит эту чертову таблицу, скорее всего из-за того что файл не видит, даже прописывая фулл путь вручную, даже с помощью всяких библиотек, которые путь до файла определяют по названию
Данная ошибка говорит о том что в sqllite нету таблицы users. Например, в DBeaver нужно делать синхронизацию бд т.к. изначально запись сохраняется локально, в temp. Или в коде где-то нету commit после создания таблицы.
Я хз у меня почему-то при создании таблицы выскакивает ошибка - Невозможно подтвердить структуру таблицы. Сообщение об ошибке: Не открыта база данных для выполнения запросов.
@@tntram2834 db = sqlite3.connect('server.db', check_same_thread=False) . Но, хочу вас огорчить, что данный человек аля программист совместил асинхронный аиограм с синхронным фреймворком sqlite3 , для аиограм нужно использовать асинхронный фреймворк aiosqlite .
File "c:\Users\user\Documents\Myself\Programmer\Python\telegram\db.py", line 14, in user_exists result = self.cursor.execute("SELECT * FROM 'users' WHERE 'user_id' = ?", (user_id,)).fetchall Привет, что делать и в чем проблема? ПО моему просто не видет таблицу. Если не видет, что делать
Здравствуй, добрый человек! Подскажи пожалуйста, почему может вылетать ошибка: "UnboundLocalError: local variable 'signup' referenced before assignment" Бот работает до момента "Укажите ваш никнейм", а дальше эта ошибка, что же с ней делать? Спасибо.
Привет, друг! У меня аналогичная ситуация. Скажи, ты сумел её решить? Я гуглил, там говорится о том, что необходимо присвоить переменной глобальное значение, но это у меня не сработало..
@@kolobanga3871 Привет! Я так и не нашёл решения. Пробовал ввести global, как объясняют в документации, но у меня это не сработало. ЕСли вдруг найдёшь решение, напиши сюда, плиз.
@@Dedir_group Привет у меня была проблема в том что функция /start не работала, следовательно, не создавала в БД пользователя и при выполнение в signup находится NULL чего по идее не должно быть. И именно из-за этого и была вся проблема у меня.
Спасибо за видеогайд, только непонятна пока цель такого бота. Может поделитесь примером применения, ато пока не ясно зачем пользователям регистрироваться в нашем боте.
@@CodeWriter я прочитал, я сразу понял про что он говорит, сразу проверил название таблицы. И вычитал что лежит в библиотеке и устанавливать не нужно. Я сопоставляю коды и не понимаю в чем ошибка. Я не сразу полез в комментарии сообщать о проблеме.
@@kostian.solarev Здраствуйте спасибо за попытку но теперь вместо моментального выключения выдает следующее INFO:aiogram:Bot: ITroboCUBE [@roboCUBbot] WARNING:aiogram:Updates were skipped successfully. INFO:aiogram.dispatcher.dispatcher:Start polling. INFO:aiogram.dispatcher.dispatcher:Stop polling... WARNING:aiogram:Goodbye!
А каким образом бот добавляет в базу данных ник. Понятно что если там если нет пользователя то он просто отправляет сообщение введите ваш ник. Как реализовать что он задаст несколько вопросов и ответы запишет?
TypeError: object sqlite3.Cursor can't be used in 'await' expression происходит после ввода одного поля в таблицу при помощи бота. Если кто-то сталкивался , обьясните проблему пожалуйста
бро, переписал твой код из видео 1 в 1, все библиотеки установил. Сам бот при запуске не выдает ошибок никаких. Прописываю в телеге команду старт, он просит указать ник, после указания ника вылетает очень много ошибок, связанных с async как я понял, не знаю уже как фиксить, помоги
Traceback (most recent call last): File "c:\Users\AbdullA\Desktop\bot\main.py", line 13, in db = Database(database.db) NameError: name 'database' is not defined почему?
Что делать ? Traceback (most recent call last): File "C:\Users\stasg\OneDrive\Рабочий стол\bottg\Code1.py", line 4, in from db import Database File "C:\Python\Python311\Lib\site-packages\db\__init__.py", line 336, in import drivers ModuleNotFoundError: No module named 'drivers' [Finished in 1.4s]
строчка кода: db = Database('database.db') ошибка: Database() takes no arguments File "D:\Python\main.py", line 13, in db = Database('database.db') помогите разобраться
ты создаёшь объект класса Database, проверь, чтобы название класса называлось Database, и проверь название файла с базой данных, она тоже должна называться database.db и находиться в той же директории где и сам бот
@@CodeWriter читать умеем, всё переписано с видео, однако такая ошибка вылезает постоянно при попытке вызова этих самых user_exists, get_signup и т.д. помогите, пожалуйста
@@marcpeterson3137 в строке запроса к БД, то есть на видео он берëт в кавычки названия столбцов, вот этого не надо делать. Я уже перешёл на другую БД так как синхронный подход в асинхронной программе не очень хорошо
raceback (most recent call last): File "", line 1, in File "/usr/lib/python2.7/py_compile.py", line 117, in compile raise py_exc py_compile.PyCompileError: File "prog.py", line 16 async def start(message: types.message): ^ та же х одну строку не могу исправить
всем привет. попробовал, выдает ошибку импорта. import markups as nav и from aiogram.types import ReplyKeyboardMurkup, KeyboardButton ImportError: cannot import name 'ReplyKeyboardMurkup' from 'aiogram.types' (C:\bot_1103\venv\Lib\site-packages\aiogram\types\__init__.py) кто может подсказать, что не так делаю. не нашел развернутого ответа
SyntaxWarning: 'str' object is not callable; perhaps you missed a comma? result = self.cursor.execute("SELECT `signup` FROM `users` WHERE `user_id` = ?"(user_id,)).fetchall() ну что это бл такое
у меня все работает в телеграмме. в коде тоже нету ошибок. Но почему то не заполняется табличка в БД после регистрации. Как это исправить? Заранее спасибо
у меня все работает в телеграмме. в коде тоже нету ошибок. Но почему то не заполняется табличка в БД после регистрации. Как это исправить? Заранее спасибо
Жду следующий видос "Как сделать телеграм бота который будет снимать за вас видео на ютуб"
Так а за тебя разве не двойники снимают???
ЭТО ЧТО НАСТОЯЩИЙ ПЯТЁРКА??
Ага
@@qurad9255 нет
да
Ты не представляешь на сколько полезен твой ролик!!!
Ни в коем случае не повторяй код с его видео.
@@blazeegor если чисто переписать логику то норм
Как же режит слух произношение слова - бота ))))
Автору спасибо
Отличное видео. Спасибо.
прикольно
Давно не виделись)
привет фсоки
@@CodeWriter у Вас есть в телеграмме?
Канала нет, есть группа в вк
@@CodeWriter А есть личный аккаунт в ТГ? Я хотел у Вас кое-что спросить
Чтобы научиться писать бота нужно быть максимально внимательным.
крута 😎😎😎👍👍👍🔥🔥🔥
Супер ещё ест такие ролики про эту тема скин мне
Лучший!
Ну спс)
Я почему-то не могу создать signup на default нет кнопка применить
топ
А эта БД будет локальной? Ну, в плане, дадите Вы Вашу папку с программой бота кому-то на другой компьютер, то разве БД не будет "пустой"?
Нет, если он отправит БД, все данные будут у пользователя. Но отправлять базу данных на github считается дурным тоном. Так, что для отправки этого кода в github и дальнейшей работе с его исходниками, придется либо автору написать отдельный код, который будет отвечать за создание БД или тебе самому придется создавать. А как ты будешь создавать ее, решать тебе)
P.S. надеюсь помог в вопросе
Подскажите , почему не используем self.connection.commit() ?
А можно такое же условие проверки пользователя в бд привязать к машине состояний ?
у меня все работает в телеграмме в коде нету ошибок. Но почему то не заполняется табличка в БД после регистрации. Как это исправить? Заранее спасибо
Помогите пожалуйста, в меня точно так же как на видео, только ошибка File "C:\Bot_on_Aiogram\main.py", line 17, in start
if (not db.user_exists(message.from_user.id)):
File "C:\Bot_on_Aiogram\db.py", line 14, in user_exists
result = self.cursor.execute("SELECT * FROM 'users' WHERE 'user_id' = ?", (user_id,)).fetchall()
sqlite3.OperationalError: no such table: users
брат скажи если нашел решение, я уже все что можно попробовал, и директорию менял, тыщу раз пересоздавал и вручную бд ставил, все равно он не видит эту чертову таблицу, скорее всего из-за того что файл не видит, даже прописывая фулл путь вручную, даже с помощью всяких библиотек, которые путь до файла определяют по названию
@@ПетрСмирнов-о1т скорее всего нет отступа
@@AAA-io5my да кучу раз перетыкал, переписал, даже без фулл пути, с одним только названием все открылось, заработало.
Данная ошибка говорит о том что в sqllite нету таблицы users. Например, в DBeaver нужно делать синхронизацию бд т.к. изначально запись сохраняется локально, в temp. Или в коде где-то нету commit после создания таблицы.
Всех приветствую!
Скобки нужно убрать просто, по моему, вместо 'users' --> users
Import "aiogram" could not be resolvedPylancereportMissingImports
No quick fixes available не знаешь как это решить?
Я хз у меня почему-то при создании таблицы выскакивает ошибка - Невозможно подтвердить структуру таблицы. Сообщение об ошибке: Не открыта база данных для выполнения запросов.
Показывай в самом начале какие ты библиотеки импортируешь пж
отсылка на уенсдей?
по коду все видно даже чайнику...
А я могу использовать MyPHP Admin для этого? А то почему-то не видел мою таблицу, хотя я сделал её импорт в корневую папку.
найс, я уже потратил 50₽ на такого бота с бд)
SQLite objects created in a thread can only be used in that same thread. The object was created in thread id. Как решить эту проблему?
Добрый день нашли решение?
Помогите пожалуйста
@@tntram2834 db = sqlite3.connect('server.db', check_same_thread=False) . Но, хочу вас огорчить, что данный человек аля программист совместил асинхронный аиограм с синхронным фреймворком sqlite3 , для аиограм нужно использовать асинхронный фреймворк aiosqlite .
sqlite3.ProgrammingError: parameters are of unsupported type в чём проблема не могу понять
File "c:\Users\user\Documents\Myself\Programmer\Python\telegram\db.py", line 14, in user_exists
result = self.cursor.execute("SELECT * FROM 'users' WHERE 'user_id' = ?", (user_id,)).fetchall
Привет, что делать и в чем проблема? ПО моему просто не видет таблицу. Если не видет, что делать
А если юзер введёт существующую команду, тем самым он не зарегистрируется в БД и будет использовать функционал бота
Ты можешь сделать только чтоб конкретный айдишник имел доступ к функционалу команд, который проверялся бы с айди админа из бд
@@Tim24-j1sне надо так делать
Здравствуй, добрый человек!
Подскажи пожалуйста, почему может вылетать ошибка: "UnboundLocalError: local variable 'signup' referenced before assignment"
Бот работает до момента "Укажите ваш никнейм", а дальше эта ошибка, что же с ней делать?
Спасибо.
Привет, друг!
У меня аналогичная ситуация. Скажи, ты сумел её решить?
Я гуглил, там говорится о том, что необходимо присвоить переменной глобальное значение, но это у меня не сработало..
@@Dedir_group Привет!
Скажи пожалуйста, ты смог решить данную проблему? 2 день уже не могу её решить.
@@kolobanga3871 Привет! Я так и не нашёл решения. Пробовал ввести global, как объясняют в документации, но у меня это не сработало. ЕСли вдруг найдёшь решение, напиши сюда, плиз.
@@Dedir_group Привет у меня была проблема в том что функция /start не работала, следовательно, не создавала в БД пользователя и при выполнение в signup находится NULL чего по идее не должно быть. И именно из-за этого и была вся проблема у меня.
@@kolobanga3871 Как ты исправил?
а что если не зарегистрированный пользователь от руки введет "👥 ПРОФИЛЬ"?
То выполниться действие как и при нажатии кнопки, потому что для бота нет такого понятия как команды, а только сообщения
@@pajnkjller это был риторический вопрос. Будет ошибка!
помогите
line 2, in
from aiogram import Bot, Dispatcher, executor, types
ModuleNotFoundError: No module named 'aiogram'
у тя модуль aiogram не скачан
terminal открываешь и пишешь 'pip install aiogram' если будет нужен пип напишет команду. Если не скачал качай пип
Видос отличный, но бот'ааа это капец режет слух, где вы все блогеры берете это произношение ))))
Спасибо за видеогайд, только непонятна пока цель такого бота. Может поделитесь примером применения, ато пока не ясно зачем пользователям регистрироваться в нашем боте.
а как можно сделать добавление ника в базу другими способами ибо питон не работает в sqlite среде
Мне нужно айди с 1win зарегистрировать в один телеграмм бот и получить индивидуальный пароль для своего айди, кто-нибудь может ?
На счет б.д. user_id должен быть bigint
Почему когда я создаю столбец "time_sub" в (default) значение 0 нельзя применить? Хотя на видео у вас получается
в левом верхнем углу нужно нажать "connect to the database"
@@stasyason3438 его тоже немогу нажать
У меня проблема. Помогите плс
sqlite3.OperationalError: no such table: users
users у меня есть
такая же проблема :(
@@madche5384 я уже решил
@@Naumix_ а каким образом не подскажешь?
Установка pysqlite3 не помогает
Sqlite идет в комплекте с python. А в ошибке написано что нет таблицы users. Научитесь читать ошибки. Ну хотя бы в переводчик вставлять
@@CodeWriter я прочитал, я сразу понял про что он говорит, сразу проверил название таблицы. И вычитал что лежит в библиотеке и устанавливать не нужно. Я сопоставляю коды и не понимаю в чем ошибка. Я не сразу полез в комментарии сообщать о проблеме.
что делать, если выдает ошибку "не вижу таблицу users"
Попробуй переписать БД не через студию а через питон, мне помогло
@@AlmazKalykovv спасибо!
Здравствуйте, такая ситуация делаю в pyCharm и при запуске ошибок нет но он выключается сразу после запуска.
Спасибо заранее тому кто поможет.
Что именно за ошибка, через cmd запусти бота с корневой папки
Вы пробовали bot.polling(none_stop=True)?
без знака вопроса*
Если же да, то Вам надо будет залить бота на сервер (когда я откл свой ноут, бот тоже перестает работать
@@kostian.solarev Здраствуйте спасибо за попытку но теперь вместо моментального выключения выдает следующее
INFO:aiogram:Bot: ITroboCUBE [@roboCUBbot]
WARNING:aiogram:Updates were skipped successfully.
INFO:aiogram.dispatcher.dispatcher:Start polling.
INFO:aiogram.dispatcher.dispatcher:Stop polling...
WARNING:aiogram:Goodbye!
А каким образом бот добавляет в базу данных ник. Понятно что если там если нет пользователя то он просто отправляет сообщение введите ваш ник. Как реализовать что он задаст несколько вопросов и ответы запишет?
FSM, бро
@@solarx8103 код автора мог бы быть намного лучше, если бы он юзал машину состояний
TypeError: object sqlite3.Cursor can't be used in 'await' expression происходит после ввода одного поля в таблицу при помощи бота. Если кто-то сталкивался , обьясните проблему пожалуйста
Убери await в строчке, это не асинхронный подход
Подскажите пж! Каким образом setnickname попадает в signup?
всё понял! По дефолту стоит!
а какой бот без подписки не сколким каналам не пускает
бро, переписал твой код из видео 1 в 1, все библиотеки установил. Сам бот при запуске не выдает ошибок никаких. Прописываю в телеге команду старт, он просит указать ник, после указания ника вылетает очень много ошибок, связанных с async как я понял, не знаю уже как фиксить, помоги
Да, та же фигня. Почему у тебя нет Git своего?
решил?
@@СашаШкуренко-х3е узнал?)
Можете написать кто нибудь какие надо библиотеки испортировать?
пересмотри видео мэн)
Traceback (most recent call last):
File "c:\Users\AbdullA\Desktop\bot\main.py", line 13, in
db = Database(database.db)
NameError: name 'database' is not defined
почему?
db.py
import sqlite3
class Database:
def __init__(self, db_file):
self.connection = sqlite3.connect(db_file)
self.cursor = self.connection.cursor ....
main.py
import logging
from aiogram import Bot, Dispatcher, executor, types
import markups
from db import Database
API_TOKEN = '***'
logging.basicConfig(level=logging.INFO)
bot = Bot(token=API_TOKEN)
dp = Dispatcher(bot)
db = Database(database.db)
@dp.message_handler(commands=['start']) .....
db = Database(''database.db') добавь кавычки и проверяй
ААААААААААА
А когда бот перезапускается база данных заново не создается? Ведь экземпляр класса по новой инициализируется
Ні. Там розумно дивиться, чи існує вже БД
бОта, а не ботА ;)))?
Проверочное слово бОт!
Что делать ?
Traceback (most recent call last):
File "C:\Users\stasg\OneDrive\Рабочий стол\bottg\Code1.py", line 4, in
from db import Database
File "C:\Python\Python311\Lib\site-packages\db\__init__.py", line 336, in
import drivers
ModuleNotFoundError: No module named 'drivers'
[Finished in 1.4s]
жду исходник бота=)
строчка кода:
db = Database('database.db')
ошибка:
Database() takes no arguments
File "D:\Python\main.py", line 13, in
db = Database('database.db')
помогите разобраться
ты создаёшь объект класса Database, проверь, чтобы название класса называлось Database, и проверь название файла с базой данных, она тоже должна называться database.db и находиться в той же директории где и сам бот
Получилось?
@@delakoka все проверил, все так как в видео, но ошибка осталась, не понятно в чем дело(
решил проблему, проблема синтаксическая была в методе init)
+
Пустая трата времени, без версии библиотек и самого питона
У меня из коробки сработало
if(not db.user_exists(message.from_user.id)):
AttributeError: 'Database' object has no attribute 'user_exists'
Что делать....
Научиться читать ошибки
та же ошибка, есть фикс?
@@CodeWriter читать умеем, всё переписано с видео, однако такая ошибка вылезает постоянно при попытке вызова этих самых user_exists, get_signup и т.д. помогите, пожалуйста
Зачем столько возни с ником, если мы можем взять его из телеграм, user_name вместо user_id
Потому что не все указывают user_name.
user_name это имя пользователя и оно может повторяться типо в таблице будут одни Кати и Оли. user_id это уникальное имя пользователя
if(not db1.user_exsits(message.from_user.id)):
AttributeError: 'Database' object has no attribute 'user_exsits' В чем ошибка?
та же ошибка, есть фикс?
Уже целый день мучаюсь line 35 in get_signup
Local variable 'signup' referenced before assignment
Что делать?
Понял ошибку в запросах к бд нужно было убрать кавычки, видимо версия бд другая
@@Santilka Какие именно? Названия "переменных" или наружние?
@@marcpeterson3137 в строке запроса к БД, то есть на видео он берëт в кавычки названия столбцов, вот этого не надо делать. Я уже перешёл на другую БД так как синхронный подход в асинхронной программе не очень хорошо
raceback (most recent call last):
File "", line 1, in
File "/usr/lib/python2.7/py_compile.py", line 117, in compile
raise py_exc
py_compile.PyCompileError: File "prog.py", line 16
async def start(message: types.message):
^
та же х одну строку не могу исправить
всем привет. попробовал, выдает ошибку импорта.
import markups as nav
и
from aiogram.types import ReplyKeyboardMurkup, KeyboardButton
ImportError: cannot import name 'ReplyKeyboardMurkup' from 'aiogram.types' (C:\bot_1103\venv\Lib\site-packages\aiogram\types\__init__.py)
кто может подсказать, что не так делаю. не нашел развернутого ответа
Так-то в тексте как раз и описывается где у тебя ошибка лол
SyntaxWarning: 'str' object is not callable; perhaps you missed a comma?
result = self.cursor.execute("SELECT `signup` FROM `users` WHERE `user_id` = ?"(user_id,)).fetchall()
ну что это бл такое
у тебя пробел не работает?
ты еще не разобрался? Дай знать а то я тоже мучаюсь
@@Կառտոշկագզող нужно запятую поставит перед (user_id,))
у меня все работает в телеграмме. в коде тоже нету ошибок. Но почему то не заполняется табличка в БД после регистрации. Как это исправить? Заранее спасибо
попробуй нажать кнопку обновить старницу
у меня все работает в телеграмме. в коде тоже нету ошибок. Но почему то не заполняется табличка в БД после регистрации. Как это исправить? Заранее спасибо