Estou tentando fazer um registro de usuários usando a mesma lógica de interação com o Banco que foi usada e deu certo com a manipulação da tabela jogo, só que estou tendo um problema com o execute na hora de rodar a query.
Fiz uma outra tela para me dar a lista dos Usuarios, assim como foi feito com os jogos, para que quando tivesse sido efetuada a inserção no banco, eu já tivesse a resposta .
Bom, tudo funcionando perfeito, puxei os dados do banco e agrupei .
Só que na hora de adicionar usuarios o problema começou, usei praticamente a mesma lógica da função salvar tirando o if, criei uma query chamada SQL_CRIA_USUARIO:
SQL_CRIA_USUARIO = 'INSERT into usuario(id, nome, senha) values (%s, %s, %s)'
Já o método ficou assim:
def novo_usuario(self, usuario):
cursor = self.__db.connection.cursor()
cursor.execute(SQL_CRIA_USUARIO, (usuario.id, usuario.nome, usuario.senha))
self.__db.connect.commit()
Toda a verificação para ver se já existe e etc... fiz externo ao banco e testei antes de integrar e está tudo funcionando ok, o objeto vem certinho para o método implementar.
Segue a parte do arquivo jogoteca.py que chama o método:
@app.route('/novo_usuario', methods=['POST', 'GET'])
def autenticar_novo_usuario():
id = str(request.form['id'])
nome = str(request.form['usuario'])
senha = str(request.form['senha'])
#FAZER VERIFICAÇÃO DE SENHA DEPOIS !!!!!!!!!!!!!!
if(usuario_dao.buscar_por_id(request.form['id'])):
flash("Nome de Identificação já está em uso!")
return render_template("login.html", registro_usuario=True, titulo="Faça seu registro")
else:
new_user = Usuario(id, nome, senha)
usuario_dao.novo_usuario(new_user)
return redirect(url_for("users_list"))
Tive uns problemas com a verificação de senha, mas isso é assunto pra outro tópico.
Bom, ao acessar a pagina e fazer o registro não é apresentado nenhum erro, o redirecionamento para a lista dos usuarios acontece e a query não é inserida no banco.
Cheguei a alterar e tentar jogar direto no execute :
cursor.execute('insert into usuario(id, nome, senha) values (%s ,%s , %s)', ("Nick", "Nicholas", "mestra"))
O resultado foi o mesmo, nada é inserido no banco e ele é redirecionado para a lista de usuários e nada acontece.
O resto da aplicação está funcionando tranquilamente, consigo fazer tudo com os jogos, adicionar, modificar, excluir . Mas os usuários está apresentando esse problema que não estou conseguindo saber da onde vem .
Caso queiram ver o código inteiro, está no GitHub, vou deixar o link, não liguem para a bagunça do repositório, estou brincando com ele por conta do curso de Git.
O método novo_usuario e a função autenticar_novo_usuario da rota estão meio bagunçadas porque tentei um monte de coisa e não obtive sucesso.
Segue o link do repositório:
https://github.com/MarcosYaiama/Cursos/tree/master/Python/AULAS/Alura/Python3/Frameworks/Flask%20II