Boa tarde, não estou conseguindo adaptar o que foi passado em aula. Alguém conseguiria me esclarecer sobre o meu erro?
erro:
AttributeError: 'Usuario' object has no attribute 'senha'
db:
mysql> select * from usuarios;
+----------+--------+
| nome | senha |
+----------+--------+
| Everton | abc |
| Cleiton | def |
| Fernanda | ghi |
+----------+--------+
models:
class Usuario:
def __init__(self, nome, senha):
self.__nome = nome
self.__senha = senha
html
<form method="POST" action="{{ url_for('autenticar') }}">
<input type="hidden" name="proxima" value="{{ proxima or url_for('index') }}">
<p><label>Nome de usuário:</label> <input class="form-control" type="text" name="usuario" required></p>
<p><label>Senha:</label> <input class="form-control" type="password" name="senha" required></p>
<p><button class="btn btn-primary" type="submit">Entrar</button></p>
</form>
dao:
SQL_USUARIO_POR_NOME = 'SELECT nome, senha from usuarios where nome = %s'
class UsuarioDao:
def __init__(self, db):
self.__db = db
def buscar_por_nome(self, nome):
cursor = self.__db.connection.cursor()
cursor.execute(SQL_USUARIO_POR_NOME, (nome,))
dados = cursor.fetchone()
usuario = traduz_usuario(dados) if dados else None
return usuario
def traduz_usuario(tupla):
return Usuario(tupla[0], tupla[1])
views:
def autenticar():
usuario = usuario_dao.buscar_por_nome(request.form['usuario'])
if usuario:
if usuario.senha == request.form['senha']:
session['usuario_logado'] = usuario.nome
flash(usuario.nome + ' logou com sucesso!')
proxima_pagina = request.form['proxima']
return redirect(proxima_pagina)
else:
flash('Não logado, tente denovo!')
return redirect(url_for('login'))