Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Arquivo prepara_banco

Como não achei em nenhum lugar do curso o arquivo prepara_banco.py mencionado aula, criei um baseado no video mas com algums ajustes, para quem quiser utilizar segue o código abaixo.

import mysql.connector
from mysql.connector import errorcode

print('Conectando...')

try:
    conn = mysql.connector.connect(
        host='127.0.0.1',
        user='root',
        password='admin'
    )

except mysql.connector.Error as err:
    if err.errno == errorcode.ERACCESS_DENIED_ERROR:
        print('Existe algo errado no nome de usuário ou senha')
    else:
        print(err)
else:
    print('Conectado')

cursor = conn.cursor()

cursor.execute("DROP DATABASE IF EXISTS jogoteca;")

cursor.execute("CREATE DATABASE jogoteca;")

cursor.execute("USE jogoteca")

# criando tabelas
TABLES = {}

TABLES['Jogos'] = ('''
    CREATE TABLE `jogoteca`.`jogos` (
      `id` INT NOT NULL AUTO_INCREMENT,
      `nome` VARCHAR(50) NOT NULL,
      `categoria` VARCHAR(40) NOT NULL,
      `console` VARCHAR(20) NOT NULL,
      PRIMARY KEY (`id`))
    ENGINE = InnoDB
    DEFAULT CHARACTER SET = utf8
    COLLATE = utf8_bin; ''')

TABLES['Usuarios'] = ('''
    CREATE TABLE `jogoteca`.`usuarios` (      
      `nome` VARCHAR(50) NOT NULL,
      `nickname` VARCHAR(10) NOT NULL,
      `senha` VARCHAR(100) NOT NULL,
      PRIMARY KEY (`nickname`))
    ENGINE = InnoDB
    DEFAULT CHARACTER SET = utf8
    COLLATE = utf8_bin;  ''')

for tabela_nome in TABLES:
    tabela_sql = TABLES[tabela_nome]
    try:
        print(f'Criando tabela {tabela_nome}')
        cursor.execute(tabela_sql)
    except mysql.connector.Error as err:
        if err.errno == errorcode.ER_TABLE_EXISTS_ERROR:
            print('Tabela já existe')
        else:
            print(err.msg)
    else:
        print('ok')

# inserindo usuários
usuario_sql = 'INSERT INTO usuarios (nome, nickname, senha) values (%s,%s,%s)'

usuarios = [
    ("Luisandro", "L", "123"),
    ("Dogão", "DOG", "321"),
]

cursor.executemany(usuario_sql,usuarios)

cursor.execute('select * from jogoteca.usuarios')
print('---------------- Usuários ----------------')
for user in cursor.fetchall():
    print(user[0])

# inserindo jogos
jogo_sql = 'INSERT INTO jogos (nome, categoria, console) values (%s,%s,%s)'

jogos = [
    ("Tetris", "Puzzle", "Atari"),
    ("God of War", "Hack and Slash", "PS2"),
    ("Mortal Kombat I", "Luta", "PS2"),
    ("Need for Speed", "HCorrida", "PC"),
]

cursor.executemany(jogo_sql,jogos)

cursor.execute('select * from jogoteca.jogos')
print('---------------- Jogos ----------------')
for jogo in cursor.fetchall():
    print(jogo[1])

# commitando pra gravar no banco
conn.commit()

cursor.close()
conn.close()
2 respostas

Olá, Luisandro.

Tudo bem?

Parabéns pelo excelente trabalho criando o arquivo prepara_banco.py por conta própria! Seu código parece bem estruturado e funcional para a criação do banco de dados, das tabelas e para a inserção dos dados iniciais. No geral, seu código parece muito bom para o propósito que você descreveu. Parabéns pelo seu esforço e dedicação! Com certeza vai ajudar outros estudantes.

Bons estudos!

solução!

Obrigado!