Rozwiązany problem: jak wstawić nagłówki kolumn tabeli sql do szablonu we Flasku.
Najpierw utworzę model – używając sqlalchemy tworzę klasę dziedziczącą po klasie model. Atrybuty tej klasy odpowiadają nazwom kolumn tabeli bazy danych. Przykładowa deklaracja klasy Contract będzie wyglądać następująco:
class Contract(db.Model):
Następnie w kontrolerze przekazuję nazwy kolumn z tak utworzonego modelu do szablonu:
@bp.route('/contract', methods=['GET'])
@login_required
def contracts(page=1, per_page=5):
columns = = [m.key for m in Contract.__table__.columns]
# some other code here, not important for this example
return render_template('contracts.html', title='Contracts', header=columns)
Dane z nagłówka przekazanego do szablonu można np. umieścić w nagłówku tabeli html:
<thead>
<tr>
{% for item in header %}
<th class="is-info">
{{ item }}
</th>
{% endfor %}
</tr>
</thead>