1
resposta

500 internal Server Error

A pagina WEB não esta abrindo! Insira aqui a descrição dessa imagem para ajudar na acessibilidade Insira aqui a descrição dessa imagem para ajudar na acessibilidade

from flask import Flask, render_template


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


app = Flask(__name__)


# criando uma rota
@app.route("/inicio")
def ola():
    jogo1 = Jogo('Halo', 'FPS', 'XBOX')
    jogo2 = Jogo('God of War', 'Rack n Slash', 'PS2')
    jogo3 = Jogo('Valorante', 'FPS', 'PC')
    lista = [jogo1, jogo2, jogo3]
    return render_template('listas.html', titulo='Jogos', jogos=lista)


app.run()
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Jogoteca</title>
  </head>
  <body>
    <div class="container">
        <div class="page-header">
            <h1>{{ titulo }}</h1>
        </div>
        <table class="table table-striped table-responsive table-bordered">
            <thead class="thead-default">
                <tr>
                    <th>Nome</th>
                    <th>Categoria</th>
                    <th>Console</th>
                </tr>
            </thead>
            <tbody>
                {% for jogo in jogos %}
                <tr>
                    <td>{{% jogo.nome %}}</td>
                    <td>{{% jogo.categoria %}}</td>
                    <td>{{% jogo.console %}}</td>
                </tr>
                {% endfor %}
            </tbody>
        </table>
    </div>
  </body>
</html>

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta

Olá, Victor!

Acredito que seja devido ao erro de sintaxe da linha 24 a linha 26. Você deveria utilizar as duas chaves apenas (sem o percentual) para inserir o output diretamente no template. A sintaxe com o percentual denota uma sintaxe reservada a controle de fluxo. Segue documentação do flask que aborda essa questão: https://flask.palletsprojects.com/en/2.1.x/tutorial/templates/ Acredito que corrigindo estas linhas conforme código abaixo resolverá o problem:

                {% for jogo in jogos %}
                <tr>
                    <td>{{ jogo.nome }}</td>
                    <td>{{ jogo.categoria }}</td>
                    <td>{{ jogo.console }}</td>
                </tr>
                {% endfor %}