2
respostas

[Dúvida] ERRO DE AUTENTICAÇÃO - DIRECIONAMENTO PARA CRIAR NOVO JOGO SEM LOGIN NÃO FUNCIONA

Quando eu tento criar um novo jogo sem login, ao invés de me direcionar ao "login.html", ele me aparece essa página. Insira aqui a descrição dessa imagem para ajudar na acessibilidadeCódigo do JOGOTECA.PY:

from flask import Flask, render_template, request, redirect, session, flash


class Jogo:
    def __init__(self, nome, categoria, console):
        self.nome = nome
        self.categoria=categoria
        self.console=console

jogo1 = Jogo('Tetris', 'Puzzle', 'Atari')
jogo2 = Jogo('God of War', 'Rack n Slash', 'PS2')
jogo3 = Jogo('Mortal Kombat', 'Luta', 'PS2')
lista = [jogo1,jogo2,jogo3]
app = Flask(__name__)
app.secret_key = 'jogoteca'
@app.route('/')
def index():
    return render_template('lista.html',titulo='Jogos',jogos=lista)

@app.route('/novo')
def novo():
    if 'usuario_logado' not in session or session['usuario_logado'] == None:
        return render_template('/login?proxima=novo')
    return render_template('novo.html', titulo='Novo Jogo')

@app.route('/criar', methods=['POST'])
def criar():
    nome = request.form['nome']
    categoria = request.form['categoria']
    console = request.form['console']
    jogo = Jogo(nome, categoria, console)
    lista.append(jogo)
    return redirect('/')

@app.route('/login')
def login():
    return render_template('login.html')

@app.route('/autenticar', methods=['POST'])
def autenticar():
    if 'alohomora' == request.form['senha']:
        session['usuario_logado'] = request.form['usuario']
        flash(session['usuario_logado'] + ' Logado com sucesso!')
        return redirect('/')
    else:
        flash('USUÁRIO NÃO LOGADO!')
        return redirect('/login')
@app.route('/logout')
def logout():
    session['usuario_logado'] = None
    flash('Logout efetuado com sucesso!')
    return redirect('/')

app.run(debug=True)

Terminal ao pesquisar a rota "/novo" sem efetuar o login: Insira aqui a descrição dessa imagem para ajudar na acessibilidade

2 respostas

RESOLVIDO!

ONDE ESCREVI:

@app.route('/novo')
def novo():
    if 'usuario_logado' not in session or session['usuario_logado'] == None:
        return render_template('/login?proxima=novo')
    return render_template('novo.html', titulo='Novo Jogo')

ERA PARA SER ESCRITO:

@app.route('/novo')
def novo():
    if 'usuario_logado' not in session or session['usuario_logado'] == None:
        return redirect('/login?proxima=novo')
    return render_template('novo.html', titulo='Novo Jogo')

O erro foi no return!

Olá, Tony. Tudo bem?

Que bom que conseguiu resolver! E muito obrigado por voltar aqui no tópico e avisar que conseguiu, e mostrar como conseguiu resolver.

Abraços e bons estudos.