首页 > 解决方案 > 在 Flask 中读取 CSV 文件并遍历 Jinga2

问题描述

我正在尝试使用 Flask 在我的 Web 应用程序上显示来自 CSV 文件的数据。下面的代码读取我的 CSV 文件并将 stocklist 分配为我的数据的变量。在它下面的 HTML 代码中,使用 jinga 逻辑,我遍历 stocklist 但是我的 CSV 列作为行返回(参见示例输出和图片)。如何正确显示行?

我的python函数:

@app.route('/stocks')
def Stocks():
    filename = 'stock_scraper - dev.csv'
    data = pandas.read_csv(filename, header=0)
    stocklist = list(data.values.flatten())
    return render_template('stocks.html', stocklist=stocklist)

我的用于遍历库存列表的网络应用程序:

            <table class="table table-striped table-sm">
              <thead>
                <tr>
                  <th>#</th>
                  <th>Ticker</th>
                  <th>Closing Price</th>
                  <th>Closing Date</th>
                </tr>
              </thead>
              <tbody>
                {% for eachstocks in stocklist%}
                <tr>
                  <td>{{ eachstocks }}</td>
                  <td>{{ eachstocks }}</td>
                  <td>{{ eachstocks }}</td>
                  <td>{{ eachstocks }}</td>
                </tr>
                {% endfor %}
              </tbody>
            </table>

输出: 桌子

标签: pythonpython-3.xflaskjinja2

解决方案


Haks,我删除了嵌套循环并在每个值中添加了列表位置来修复它。现在工作。

          <tbody>
            {% for value in stocklist %}
                <tr>
                  <td>{{ value[0] }}</td>
                  <td>{{ value[1] }}</td>
                  <td>{{ value[2] }}</td>
                  <td>{{ value[3] }}</td>
                </tr>
            {% endfor %}
          </tbody> 

输出 在此处输入图像描述


推荐阅读