Мой код печатает большие пробелы в выводе jinja html. А затем после этого печатает требуемые результаты. Я выполняю простое заявление select
и хотел бы отобразить его. Я хотел бы избежать (и понять, почему это происходит) пробелов в выводе html.
app.py
from flask import Flask, redirect, render_template
import psycopg2
import os
import sqlalchemy
app = Flask(__name__)
app.config['SECRET_KEY'] = os.urandom(12)
@app.route('/', methods=['GET', 'POST'])
def home():
engine = sqlalchemy.create_engine('postgresql://user:pw@localhost/db')
result = engine.execute('select * from person.personphone limit 10;') # adventureworks db
col_names = result.keys()
col_vals = [dict(row) for row in result]
######################################### used for debugging
for col in col_names:
print(col, end=' ')
print('')
for row in col_vals:
for col in col_names:
print(row[col], end=' ')
print('')
######################################### end debugging
return render_template('home.html', colname=col_names, colval=col_vals)
if __name__ == '__main__':
app.run(debug=True)
home.html
{% extends "base.html" %}
{% block content %}
Hello world
<br>
<div id="table">
<table>
<tr>
{% for col in colname %}
<th>{{ col }} </th>
{% endfor %}
</tr>
<br>
{% for row in colval %}
<tr>
{% for col in colname %}
<td>{{ row[col] }} </td>
{% endfor %}
</tr>
<br>
{% endfor %}
</table>
</div>
{% endblock %}
Терминальный выход:
Вывод Jinja в браузере: