Como posso criar um crud para as classes esporte, corrida, atleta em Python?

Alguém pode me ajudar?

Pessoal, gostaria de saber como desenvolver esse programa em Python, eu fiz a interface gráfica mas não sei fazer a conexão com o banco de dados eu não consigo fazer outra classe ( Esporte, Atleta, Corrida ) no python e eu não consigo comunicar os dados com o mysql

Classe Esporte estende a classe BancodeDados

  • Atributos: nome_esporte deve ser string , tipo_esporte deve ser string , idade_atleta deve ser inteira, nota_de_classificacao_em_esporte deve ser inteira, duracao_do_esporte deve ser double
  • Função: classificar_Esporte() que retorna para a palavra vôlei, corrida ou futebol se for a escolha do atleta

Classe Corrida estende a classe BancodeDados

  • Atributos: tipo_de_corrida deve ser string , distancia_corrida deve ser string
  • Função: classificar_Corrida(): retornar para a palavra 5k para a corrida 5k, 10k para a corrida de 10k

Classe Aleta estende a classe BancodeDados

  • Atributos: nome_do_atleta: deve ser string , tipo_de_esporte_do_atleta deve ser string, idade_atleta deve ser inteira, nota_de_classificacao_em_esporte deve ser inteira, duracao_do_esporte deve ser double
  • Função: classificar_Atleta() que classifica o atleta de acordo com a nota de classificacao dentro de um esporte: futebol, vôlei ou corrida, total_de_esportes() deve retornar a quantidade total de esportes e o total_de_atletas() deve retornar a quantidade total de atletas em um determinado esporte.

Requisitos

  1. Informe 2 esportes, 2 corridas e 2 esportes gerais: volei, futebol ou mesmo corrida
  2. A entrada dessas informações deve ser feita apenas pelo prompt conectado ao banco de dados mysql com a biblioteca, a interface gráfica Tkinter
  3. O menu dentro do prompt deve ter as opções de inserir um novo programa, buscar e visualizar os programas já cadastrados.
  4. Faça uma classe Teste para testar todo esse programa e desenvolva na linguagem de programação Python

Arquivo dados.sql


CREATE TABLE bancodedados (
  id_bancodedados  INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
  nome_bancodedados  VARCHAR(255) NULL,
  PRIMARY KEY(id_bancodedados )
);

CREATE TABLE usuario (
  id_usuario INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
  usuario_id_usuario INTEGER UNSIGNED NOT NULL,
  nome_usuario VARCHAR(255) NULL,
  PRIMARY KEY(id_usuario),
  INDEX usuario_FKIndex1(usuario_id_usuario)
);

CREATE TABLE corrida (
  id_corrida INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
  corrida_id_corrida INTEGER UNSIGNED NOT NULL,
  tipo_corrida VARCHAR(255) NULL,
  PRIMARY KEY(id_corrida),
  INDEX corrida_FKIndex1(corrida_id_corrida)
);

CREATE TABLE esporte (
  id_esporte INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
  esporte_id_esporte INTEGER UNSIGNED NOT NULL,
  tipo_esporte VARCHAR(255) NULL,
  nome_esporte VARCHAR(255) NULL,
  PRIMARY KEY(id_esporte),
  INDEX esporte_FKIndex1(esporte_id_esporte)
);



Código em Python bancodedados.py

import mysql.connector

mydb = mysql.connector.connect(
  host="localhost",
  user="bancodedados",
  passwd=""
)


Código em Python crud.py


import json
import mysql.connector

from tkinter import *

class Bancodedados():
	window=Tk()
	window.wm_title("Cadastro de Atleta em Esporte algum esporte ou o esporte específico como Corrida ")
	
    txtNomedoAtleta=StringVar()
	txtCategoriadeEsporte=StringVar()
	txtidadeAtleta=StringVar()
	txtNotadeClassificaodoAtleta=StringVar()
	txtDuracaodoEsporte=StringVar()
	lblNomedoAtleta=Label(window,text="NomedoAtleta")
	lblCategoriadeEsporte=Label(window,text="CategoriadeEsporte")
	lblidadeAtleta=Label(window,text="idadeAtleta")
	lblNotadeClassificaodoAtleta=Label(window,text="NotadeClassificaodoAtleta")
	lblDuracaodoEsporte=Label(window,text="DuracaodoEsporte")
	entNomedoAtleta=Entry(window,textvariable=txtNomedoAtleta,width=30)
	entCategoriadeEsporte=Entry(window,textvariable=txtCategoriadeEsporte,width=30)
	entidadeAtleta=Entry(window,textvariable=txtidadeAtleta,width=30)
	entNotadeClassificaodoAtleta=Entry(window,textvariable=txtNotadeClassificaodoAtleta,width=30)
	entDuracaodoEsporte=Entry(window,textvariable=txtDuracaodoEsporte,width=30)
		
	listAtletas=Listbox(window,width=60)
	scrollAtletas=Scrollbar(window)
	btnVerTodos=Button(window,text="Ver Todos")
	btnBuscar=Button(window,text="Buscar")
	btnInserir=Button(window,text="Inserir")
	btnAtualizar=Button(window,text="Atualizar Selecionados")
	btnDeletar=Button(window,text="Deletar Selecionados")
	btnFechar=Button(window,text="Fechar")
	lblNomedoAtleta.grid(row=0,column=0)
	lblCategoriadeEsporte.grid(row=0,column=0)
	lblidadeAtleta.grid(row=0,column=0)
	lblNotadeClassificaodoAtleta.grid(row=0,column=0)
	lblDuracaodoEsporte.grid(row=0,column=0)
	entNomedoAtleta.grid(row=0,column=0)
	entCategoriadeEsporte.grid(row=0,column=0)
	entidadeAtleta.grid(row=0,column=0)
	entNotadeClassificaodoAtleta.grid(row=0,column=0)
	entDuracaodoEsporte.grid(row=0,column=0)
		
	listAtletas.grid(row=0,column=2,rowspan=10)
	scrollAtletas.grid(row=0,column=6,rowspan=10)
	btnVerTodos.grid(row=4,column=1,columnspan=1)
	btnBuscar.grid(row=5,column=1,columnspan=1)
	btnInserir.grid(row=6,column=1,columnspan=1)
	btnAtualizar.grid(row=7,column=1,columnspan=1)
	btnDeletar.grid(row=8,column=1,columnspan=1)
	btnFechar.grid(row=9,column=1,columnspan=1)

	listAtletas.configure(yscrollcommand=scrollAtletas.set)
	scrollAtletas.configure(command=listAtletas.yview)

	x_pad=5
	y_pad=3
	width_entry=30

	for child in window.winfo_children():
		widget_class=child.__class__.__name__
		if widget_class=="Button":
			child.grid_configure(sticky="WE",padx=x_pad,pady=y_pad)
		elif widget_class=="Listbox":
			child.grid_configure(padx=0,pady=0,sticky="NS")
		elif widget_class=="Scrollbar":
			child.grid_configure(padx=0,pady=0,sticky="NS")
		else:
			child.grid_configure(padx=x_pad,pady=y_pad,sticky="N")


class Esporte():
class Corrida():
class Atleta():
class Teste():

Bancodedados.window.mainloop()

Esses tópicos deve te ajudar