前言
对于第一篇文章中我没有写关于使用数据库的事实,我深表歉意,但是本部分旨在使用MySQL。
第3部分将是一种补充,其中我们将考虑为机器人使用键盘,并且本周期的文章将结束。
准备工作
在上一篇文章之后,我们应该有以下代码:
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")
让我们创建一个机器人,该机器人将为我们带来积极或消极的结果。 例如,“生命”和“死亡”。 然后将其输入数据库,以后再将此结果发送给我们。
首先,我们必须拥有自己的带有现成表的数据库。
如果有人不知道如何创建表,那么以下是您需要在mysql控制台中插入的代码:
CREATE DATABASE `firstbot`; CREATE TABLE `mode`(Id_User INT(11), Mode VARCHAR(6) DEFAULT("NOT"), PRIMARY KEY(Id_User));
在此基础上,我们表格的框架将准备就绪。 有关创建和修改表的更多信息,请参见关闭。 网站(链接将在下面)。
创建一个将随机返回Dead或Live的函数:
现在,我们必须创建一个函数,将我们的值发送到数据库。
def add_to_database(function_mode, x):
我们创建了一个函数,可以将一个人添加到数据库中或完成他的工作(如果已经存在)。 在我们的例子中,直到ON DUPLICATE KEY UPDATE的所有内容都将我们的结果放入数据库中。 如果数据库中已经有一个带有我们用户ID的列,则新值不会输入到数据库中,而是由ON DUPLICATE KEY UPDATE负责。
但是,除了我们将值输入数据库之外,我们还需要获取它们。 为此,请创建这样的功能。
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()解压缩我们收到的请求并将其显示。 使用该条件,我们检查数据库中的记录是否正确。 如果不是,则为它分配所需的警告值。
对我们而言,剩下的就是完全收集代码并添加几行代码,以便一切都能按我们期望的方式工作。
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)
这样我们就得到了机器人的回应

总结
在完成工作的帮助下,我们创建了一个知道如何使用MySQL的机器人。 这并没有结束其功能。 它越来越宽,越来越大,仅受您的想象力限制。
该代码不是理想的,我只是编写它来说明MySQL如何工作。 如果您更好地了解这些方法,请随时使用它们。 我还将接受任何有助于改进当前代码的帮助。
有用的链接
PyMySQL官方页面MySQL官方页面俄语的PyMySQL文档Vk_api文档Vkontakte API文档机器人本身的代码