Ao inserir o login e senha na rota /login, apareceu a seguinte mensagem:
Not Found
The requested URL was not found on the server. If you entered the URL manually please check your spelling and try again.
Ao inserir o login e senha na rota /login, apareceu a seguinte mensagem:
Not Found
The requested URL was not found on the server. If you entered the URL manually please check your spelling and try again.
Posta aí o html login onde chama a rota e depois views, no caso a rota login
{% with messages = get_flashed_messages() %}
{% if messages %}
<ul id="messages" class="list-unstyled">
{% for message in messages %}
<li class="alert alert-success">{{ message }}</li>
{% endfor %}
</ul>
{% endif %}
{% endwith %}
<h1>Faça seu login</h1>
<form method="POST" action="{{ url_for('autenticar') }}">
<input type="hidden" name="proxima" value="{{ proxima }}">
<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>
</div>
@app.route('/login') def login(): proxima = request.args.get('proxima') return render_template('login.html', proxima=proxima)
Está tudo igual faltou só autenticar, segue a minha para você conferir já que você não enviou:
@app.route('/autenticar', methods=['POST',])
def autenticar():
usuario = Usuarios.query.filter_by(nickname=request.form['usuario']).first()
if usuario:
if request.form['senha'] == usuario.senha:
session['usuario_logado'] = usuario.nickname
flash(usuario.nickname + ' logado com sucesso!')
proxima_pagina = request.form['proxima']
if proxima_pagina != 'None':
return redirect(proxima_pagina)
else:
return redirect('/')
else:
flash("Usuário ou senha não reconhecidos!")
return redirect(url_for('login'))
else:
flash("Usuário ou senha não reconhecidos!")
return redirect(url_for('login'))
Not Found
The requested URL was not found on the server. If you entered the URL manually please check your spelling and try again.
Não encontrado
A URL solicitada não foi encontrada no servidor. Se você inseriu o URL manualmente, verifique a ortografia e tente novamente.
Essa mensagem está afirmando que não encontrou url autenticar, será que você escreveu o nome dessa rota autenticar errado lá views.py.
Salvou!!
Estava faltando o último If:
if proxima_pagina != 'None': return redirect(proxima_pagina) else: return redirect('/')