Как по нажатию кнопки заносить данные в таблицу БД

Планируется с помощью библиотеки Tkinter создать виджет с несколькими кнопками.

При нажатии одной из них в уже имеющейся таблице БД будет создаваться ячейка типа INT

При нажатии на вторую в эту ячейку будет заноситься цифра.

Что есть в наличии:

  1. Знания о том, как создавать базы даных и таблицы в MariaDB на языке SQL
  2. Совсем небольшие знания по созданию виджетов с использованием библиотеки Tkinter

Не могу понять, как связать эти знания воедино, так как начал изучать SQL и Python совсем недавно.

Подскажите, пожалуйста, как следует написать код? Или посоветуйте по блокам, что и где следует расположить?

Что уже есть:

#!/usr/local/python3
# -*- coding: <utf-8> -*-

#импорт графической библиотеки
from tkinter import*
#создание окна, где будут располагаться кнопки
root = Tk()
root.title("Заносим данные в БД")
frame = Frame(width = 400, height = 200)
    "Создание кнопки и соответственно события по её нажатию"
    "Вот тут как раз не понимаю как связать с БД"
root.mainloop()

# импорт необходимых библиотек для работы с БД
from sqlalchemy import create_engine
import pymysql
import pandas as pd

# Устанавливаем связь с БД
db_connection = "mysql+pymysql://" + db_user + ":" + db_pwd + "@" + db_host + "/" + db_name + "?charset=" + db_charset
conn = create_engine(db_connection)

#Подключаемся к таблице в БД
df = pd.read_sql("SELECT * FROM TableName", conn)

#Записываем таблицу в excel файл
df.to_excel("/way/myWork.xlsx", index=False)

Ответы (1 шт):

Автор решения: Andrey

Вот минимальный код для добавления данных в БД.

# подключаем нужные библиотеки
from tkinter import*
import mysql.connector


# устанавливает соединение с БД 
mydb = mysql.connector.connect(
      host="localhost",
      user="yourusername",
      password="yourpassword",
      database="mydatabase"
    )

def save_to_bd():
"Функция для сохранения данных в БД"
    a = txt_one.get()
    b = txt_two.get()

    mycursor = mydb.cursor()

    sql = "INSERT INTO НАЗВАНИЕ_ВАШЕЙ_ТАБЛИЦЫ (НЗВАНИЕ_ПОЛЯ, НЗВАНИЕ_ПОЛЯ_2) VALUES (%s, %s)"
    val = (a, b)
    mycursor.execute(sql, val)

    mydb.commit()

root = Tk()
root.title("Заносим данные в БД")
root.geometry('450x250')
lbl_one = Label(root, text='Введите даные').grid(row=4, column=0)
lbl_two = Label(root, text='Введите даные').grid(row=5, column=0)

txt_one = Entry(root, width=10)
txt_one.grid(row=4, column=1)
txt_two = Entry(root, width=10)
txt_two.grid(row=5, column=1)


btn_save = Button(text='Добавить в БД', command=save_to_bd).grid(row=6, column=0)

root.mainloop()
→ Ссылка