Bom dia. Tou com um probleminha no Flask e gostaria de saber se uma alma iluminada aqui consegue me ajudar rs.
Tou querendo desenvolver uma web app usando Flask que lê dados de uma porta serial usando a lib "pyserial" e mostra os resultados numa table html em tempo real.
Para testar a possibilidade disso, tentei desenvolver um código que mostrasse algo assim:
HTML (uma tabelinha simples):
<html>
<head>
<meta charset="utf-8" />
</head>
<body>
<table>
<thead>
<tr>
<th>Cabeçalho</th>
</tr>
</thead>
<tbody class="corpo-tabela"></tbody>
</table>
<script src="jquery.js"></script>
<script src="principal.js"></script>
</body>
</html>
.py:
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/')
def hello_while():
x = 0
while x < 20:
print(x)
x += 1
return render_template('index.html', x = x)
app.run(debug=True)
javascript:
var x = {{ x }};
var corpoTabela = $(".corpo-tabela");
var linha = "<tr>" +
"<td>" +
x +
"</td>" +
"</tr>";
corpoTabela.append(linha);
Sei que a lógica tá meio zoada porque eu não obtive o que eu queria. O que eu quero é que basicamente o Python envie os x
obtidos no while para o JavaScript, que adiciona os x
a novas linhas da tabela, e vai mostrando a tabela crescendo em tempo real até a condição de parada do while chegar. Não usei setInterval
no JavaScript porque quero que quem envie as variáveis é o Python e não o JavaScript.
Tentei colocar o render_template
dentro do while
mais pra mostrar o que eu queria, mas sei que assim não dá certo.
Alguma alma iluminada aí pra ajudar? Se ficou confuso eu posso detalhar melhor o problema.