Przekazanie nazw kolumn tabeli do widoku jinja2 (Flask)

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>

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *