使用Flask打印数据库的所有元素,并转换为HTML中的python列表,而无需对值进行硬编码

时间:2018-07-04 17:05:23

标签: python html flask

我想将表(teams)中的所有数据库条目打印到.html文件中,然后再应用自定义格式。

对于数据库,我有一个名为Teams的数据库表,其中有TEAM_NAMECOUNTRY的列

在我的Flask应用中,我具有以下应用路线和功能:

    # views.py
    @app.route('/test')
    def test_route():

        conn = sqlite3.connect("test.db")
        c = conn.cursor()
        c.execute("select * from Teams") # get db entries

        teams = [] # init list
        i = 0
        while True:
            res = c.fetchone() # get row
            if res is None:
                break
            else:
                teams.append(res) # add row to teams list
            i += 1

        return render_template('test.html', teams=teams)

然后我有了test.html文件。在这里,我希望能够在单独的段落中打印所有数据库条目。为此,我可以像这样对它们进行硬编码:

    <body>
        <p>{{teams[0]}}</p>
        <p>{{teams[1]}}</p>
        <p>{{teams[2]}}</p>
        <p>{{teams[3]}}</p>
        <p>{{teams[4]}}</p>
        <p>{{teams[5]}}</p>

    </body>

我如何打印所有团队而不必对其ID进行硬编码?

1 个答案:

答案 0 :(得分:2)

<body>
    {% for team in teams %}
    <p>{{team}}</p>
    {% endfor %}
</body>

检查jinja documentation here,了解您可以在HTML模板上做什么