/
lucifer39
/
python_Bot
Обзор
Документация
Войти
/
lucifer39
/
python_Bot
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
text.txt
104 строки
6 KB
Ilya Kuprin
Создал БД и таблицу в ней, настроил декоратор к БД.
17 мар 2025, 15:01
17 мар 2025, 15:01
e83eced
Код
Авторство
О чём код?
my_bot_project/ │ ├── pyproject.toml # Файл конфигурации Poetry ├── README.md # Описание проекта ├── .env # Файл для хранения переменных окружения ├── my_bot/ # Основной пакет проекта │ ├── __init__.py # Инициализация пакета │ ├── bot.py # Основной файл для запуска бота │ ├── config.py # Конфигурационные параметры │ ├── database/ # Работа с базой данных │ │ ├── __init__.py │ │ ├── models.py # Модели данных │ │ ├── crud.py # CRUD операции │ │ └── migrations/ # Папка для миграций (если используется Alembic) │ ├── handlers/ # Обработчики команд/сообщений │ │ ├── __init__.py │ │ ├── start.py # Обработчик команды /start │ │ └── echo.py # Пример обработчика сообщений │ └── utils/ # Вспомогательные функции │ ├── __init__.py │ └── helpers.py # Утилиты для работы с данными, API и т.д. ├── tests/ # Тесты (опционально) │ ├── __init__.py │ └── test_bot.py └── scripts/ # Скрипты для запуска, миграций и т.д. (опционально) └── run_bot.py Команды для conn (соединение) Объект conn представляет соединение с базой данных. 1) conn.cursor() Создает курсор, который используется для выполнения SQL-запросов. 2) conn.commit() Сохраняет изменения, сделанные в базе данных (например, после INSERT, UPDATE, DELETE). 3) conn.rollback() Откатывает изменения, сделанные в текущей транзакции. Полезно, если произошла ошибка. 4) conn.close() Закрывает соединение с базой данных. Все несохраненные изменения будут потеряны, если не вызвать commit(). 5) conn.execute() Упрощенный способ выполнения SQL-запросов без явного создания курсора. conn.execute('SELECT * FROM users') 6) conn.row_factory Позволяет настроить, как будут возвращаться строки результата (например, как словари). conn.row_factory = sqlite3.Row Команды для cursor (курсор) Курсор используется для выполнения SQL-запросов и получения результатов. a) cursor.execute(sql, parameters) Выполняет SQL-запрос. Параметры передаются как кортеж. cursor.execute('SELECT * FROM users WHERE user_id = ?', (user_id,)) b) cursor.executemany(sql, parameters_list) Выполняет один SQL-запрос для нескольких наборов параметров. users = [(1, 'user1', 'User One'), (2, 'user2', 'User Two')] cursor.executemany('INSERT INTO users (user_id, username, full_name) VALUES (?, ?, ?)', users) c) cursor.fetchone() Возвращает одну строку результата запроса. Если строк больше нет, возвращает None. d) cursor.fetchall() Возвращает все строки результата запроса в виде списка. rows = cursor.fetchall() for row in rows: print(row) e) cursor.fetchmany(size) Возвращает указанное количество строк результата. rows = cursor.fetchmany(5) # Возвращает 5 строк f) cursor.description Возвращает метаданные о столбцах результата запроса (например, имена столбцов). columns = [column[0] for column in cursor.description] print(columns) # ['id', 'user_id', 'username', 'full_name'] g) cursor.rowcount Возвращает количество строк, затронутых последним запросом (например, INSERT, UPDATE, DELETE). print(cursor.rowcount) # Количество измененных строк h) cursor.close() Закрывает курсор. Обычно это делается автоматически при закрытии соединения (conn.close()). conn — это соединение с базой данных. Основные команды: cursor(), commit(), rollback(), close(). cursor — это объект для выполнения SQL-запросов. Основные команды: execute(), fetchone(), fetchall(), fetchmany(), description, rowcount. Как работает система в целом? Запуск приложения: Вызывается main(). Выполняется init_db() для инициализации базы данных. Запускается bot.infinity_polling(). Обработка событий: Бот получает новое сообщение. Вызывается соответствующий обработчик (например, start(message)). Внутри обработчика ты можешь работать с базой данных, отвечать пользователю и т.д. Завершение работы: Бот продолжает работать, пока ты его не остановишь (например, с помощью Ctrl+C в терминале).