1
resposta

FLASK: IF não está funcionando corretamente

Pq o código traz NENHUM JOGO AQUI?

PYTHON****

from flask import Flask, render_template

app = Flask(name)

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

@app.route('/') def ola(): jogo1 = Jogo('Super Mario', 'Acao', 'SNES') jogo2 = Jogo('Pokemon Gold', 'RPG', 'GBA') lista = [jogo1, jogo2] return render_template('lista.html', titulo='Jogos', jogos=lista)

app.run()

HTML**

{% if lista %}

Temos {{ len(lista) }} jogos no nosso site.

{% else %}

Nenhum jogo aqui...

{% endif %}
            <tr>
                <th>Nome</th>
                <th>Categoria</th>
                <th>Console</th>
            </tr>
        </thead>
        <tbody>
            {% for i in jogos %}
            <tr>
                <td>{{i.nome}}</td>
                <td>{{i.categoria}}</td>
                <td>{{i.console}}</td>
            </tr>
           {% endfor %}
        </tbody>
    </table>
</div>
1 resposta

Quando você executa a função return rendertemplate('lista.html', titulo='Jogos', jogos=lista) você pegou os valores de sua variável lista e passou como um valor para o parâmetro * jogos* assim para acessar sua lista no template é necessário usar o nome do parâmetro jogos .

O código pode ficar assim:

{% if jogos %}

Temos {{ len(jogos) }} jogos no nosso site.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software