Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Faça como eu fiz: mostrando jogos do servidor e dúvida

jogoteca.py

from flask import Flask, render_template


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

    def __str__(self):
        return f"{self.nome} - {self.categoria} - {self.console}"


app = Flask(__name__)


@app.route("/inicio")
def ola():
    jogo1 = Jogo("Tetris", "Puzzle", "Atari")
    jogo2 = Jogo("God of War", "Hack n Slash", "PS2")
    jogo3 = Jogo("Mortal Kombat", "Luta", "PS2")
    lista = [jogo1, jogo2, jogo3]
    return render_template("lista.html", titulo="Jogos", jogos=lista)


app.run(debug=True)

lista.html

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>{{ titulo }}</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>

Uma dúvida que surgiu enquanto eu fazia o código era como eu poderia centralizar o conteúdo do site, já que no curso ainda não usamos CSS, nem um arquivo específico para isso, surgiu a dúvida de como eu poderia fazer isso através da própria lista.html, se alguém puder me dar uma luz sobre isso, eu tentei usar style"text-align:center" no body e não entendi por que não funcionou.

1 resposta
solução!

Olá, Henrique!

Entendo que você quer centralizar o conteúdo da sua tabela de jogos no Flask. No HTML, a propriedade "text-align: center" que você tentou usar é para alinhar o texto, e não toda a tabela.

Uma maneira simples de centralizar a tabela usando CSS inline (diretamente no arquivo HTML, como você mencionou) seria adicionar um estilo à div que contém a tabela. O código ficaria assim:

<div class="container" style="display: flex; justify-content: center;">
    ...
    <table class="table table-striped table-responsive table-bordered">
        ...
    </table>
    ...
</div>

Nesse caso, a propriedade "display: flex" faz com que os elementos filhos da div se comportem de acordo com as regras do Flexbox, um modelo de layout do CSS. A propriedade "justify-content: center" alinha o conteúdo ao centro no eixo principal (que é horizontal por padrão no Flexbox).

Lembrando que essa é uma solução simples e pode não funcionar perfeitamente em todos os casos, dependendo do restante do seu código e do comportamento que você espera. Tenta utilizar o "Inspecionar" do DevTools do navegador para ver como os elementos estão organizados na tela.

Espero ter ajudado e bons estudos!

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