Préface
Je m'excuse pour le fait que je n'ai pas écrit sur le travail avec la base de données dans le premier article, mais cette partie vise à travailler avec MySQL.
La partie 3 sera une sorte d'ajout, où nous envisagerons de travailler avec le clavier pour le bot et ce cycle d'articles se terminera.
La préparation
Après le dernier article en main, nous devrions avoir ce code:
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")
Créons un bot qui nous donnera un résultat positif ou négatif. Par exemple, «Life» et «Dead». Saisissez-le ensuite dans la base de données et envoyez-nous ce résultat à l'avenir.
Tout d'abord, nous devons avoir notre propre base de données avec une table prête à l'emploi.
Si quelqu'un ne sait pas comment créer des tables, voici le code que vous devez insérer dans la console mysql:
CREATE DATABASE `firstbot`; CREATE TABLE `mode`(Id_User INT(11), Mode VARCHAR(6) DEFAULT("NOT"), PRIMARY KEY(Id_User));
Sur cela le cadre de notre table sera prêt. Plus d'informations sur la création et la modification de tables peuvent être trouvées sur off. site Web (le lien sera ci-dessous).
Créez une fonction qui renverra aléatoirement Dead ou Live:
Nous devons maintenant créer une fonction qui envoie nos valeurs à la base de données.
def add_to_database(function_mode, x):
Nous avons créé une fonction qui va ajouter une personne à la base de données ou terminer son travail, s'il est déjà là. Dans notre cas, tout ce qui se passe à ON DUPLICATE KEY UPDATE met nos résultats dans la base de données. Si la base de données a déjà une colonne avec l'ID de notre utilisateur, la nouvelle valeur n'est pas entrée dans la base de données, mais est mise à jour dont ON DUPLICATE KEY UPDATE est responsable.
Mais outre le fait que nous entrons des valeurs dans la base de données, nous devons les obtenir. Pour ce faire, créez une telle fonction.
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 () décompresse la demande que nous recevons et l'affiche. En utilisant la condition, nous vérifions si l'enregistrement dans la base de données est exact. Si ce n'est pas le cas, nous lui attribuons la valeur d'avertissement souhaitée.
Il ne nous reste plus qu'à collecter complètement le code et à ajouter quelques lignes pour que tout fonctionne comme nous le souhaitons.
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)
Et donc nous obtenons une réponse de notre bot

Résumé
Avec l'aide du travail effectué, nous avons créé un bot qui peut fonctionner avec MySQL. Cela ne met pas fin à sa fonctionnalité. Elle est beaucoup plus large et plus large, et limitée uniquement par votre imagination.
Le code n'est pas idéal et je ne l'ai écrit que pour montrer comment MySQL fonctionne. Si vous connaissez mieux les méthodes, n'hésitez pas à les utiliser. J'accepterai également toute aide pour améliorer le code actuel.
Liens utiles
Page officielle de PyMySQLPage officielle de MySQLDocumentation PyMySQL en russeDocumentation Vk_apiDocument API VkontakteLe code du bot lui-même