Prólogo
Pido disculpas por el hecho de que no escribí sobre trabajar con la base de datos en el primer artículo, pero esta parte está dirigida a trabajar con MySQL.
La Parte 3 será una especie de adición, donde consideraremos trabajar con el teclado para el bot y este ciclo de artículos terminará.
Preparación
Después del último artículo disponible, deberíamos tener este código:
import vk_api from vk_api.utils import get_random_id from vk_api.bot_longpoll import VkBotLongPoll, VkBotEventType import pymysql.cursors import requests def get_connection(): connection = pymysql.connect(host='you_host', user='you_user', password='you_password', db='you_db' charset='utf8mb4', cursorclass=pymysql.cursors.DictCursor) return connection <anchor>habracut</anchor> vk_session = vk_api.VkApi(token="a6f87v8c9a9sa87a7af9a0f9f9v8a6s6c5b5m6n8bds09asc8d7b87d87bd87n") vk = vk_session.get_api() longpoll = VkBotLongPoll(vk_session, "637182735")
Creemos un bot que nos devuelva un resultado positivo o negativo. Por ejemplo, "Vida" y "Muerto". Luego ingréselo en la base de datos y en el futuro envíenos este resultado.
Primero, debemos tener nuestra propia base de datos con una tabla preparada.
Si alguien no sabe cómo crear tablas, aquí está el código que debe insertar mientras está en la consola mysql:
CREATE DATABASE `firstbot`; CREATE TABLE `mode`(Id_User INT(11), Mode VARCHAR(6) DEFAULT("NOT"), PRIMARY KEY(Id_User));
Sobre esto, el marco de nuestra mesa estará listo. Se puede encontrar más información sobre cómo crear y modificar tablas en off. sitio web (el enlace estará debajo).
Cree una función que devolverá aleatoriamente Dead or Live:
Ahora tenemos que hacer una función que envíe nuestros valores a la base de datos.
def add_to_database(function_mode, x):
Creamos una función que agregará a una persona a la base de datos o finalizará su trabajo, si ya está allí. En nuestro caso, todo hasta ON DUPLICATE KEY UPDATE pone nuestros resultados en la base de datos. Si la base de datos ya tiene una columna con la identificación de nuestro usuario, el nuevo valor no se ingresa en la base de datos, sino que se actualiza, de lo cual es responsable la ACTUALIZACIÓN DE LA LLAVE EN DUPLICACIÓN.
Pero además del hecho de que ingresamos valores en la base de datos, necesitamos obtenerlos. Para hacer esto, cree tal función.
def select_from_database(x): connection = get_connection() cursor = connection.cursor() sql = "SELECT Mode FROM mode WHERE Id_User = %s" cursor.execute(sql, (x,))
cursor.fetchall () desempaqueta la solicitud que recibimos y la muestra. Usando la condición, verificamos si el registro en la base de datos es exacto. Si no es así, le asignamos el valor de advertencia deseado.
Todo lo que nos queda es recopilar el código por completo y agregar un par de líneas para que todo funcione como queremos.
if event.obj.text == '': if event.from_user: id_user = event.obj.from_id vk.messages.send( user_id=event.obj.from_id, random_id=get_random_id(), message=" : " + add_to_database(random_mode(), id_user)) if event.obj.text == ' ': if event.from_user: idUser = event.obj.from_id vk.messages.send( user_id=event.obj.from_id, random_id=get_random_id(), message=" : " + select_from_database(id_user)
Y entonces recibimos una respuesta de nuestro bot

Resumen
Con la ayuda del trabajo realizado, creamos un bot que sabe cómo trabajar con MySQL. Esto no termina su funcionalidad. Es mucho más amplio y más grande, y está limitado solo por tu imaginación.
El código no es ideal y solo lo escribí para mostrar cómo funciona MySQL. Si conoce mejor los métodos, no dude en usarlos. También aceptaré cualquier ayuda para mejorar el código actual.
Enlaces utiles
Página oficial de PyMySQLPágina oficial de MySQLDocumentación de PyMySQL en rusoDocumentación de vk_apiVkontakte API DocumentEl código del bot mismo