مقدمة
أعتذر عن حقيقة أنني لم أكتب عن العمل مع قاعدة البيانات في المقالة الأولى ، ولكن هذا الجزء يهدف إلى العمل مع 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 KE UP UPATE يضع نتائجنا في قاعدة البيانات. إذا كانت قاعدة البيانات تحتوي بالفعل على عمود بهوية مستخدمنا ، فلن يتم إدخال القيمة الجديدة في قاعدة البيانات ، ولكن يتم تحديثها والتي يكون 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 الرسميةالخلية الرسمية الصفحةوثائق PyMySQL باللغة الروسيةوثائق Vk_apiوثيقة API فكونتاكتيرمز البوت نفسه