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
- Informe 2 esportes, 2 corridas e 2 esportes gerais: volei, futebol ou mesmo corrida
- 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
- O menu dentro do prompt deve ter as opções de inserir um novo programa, buscar e visualizar os programas já cadastrados.
- 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()