【问题标题】:Dynamically link a csv file to an HTML table via Flask通过 Flask 将 csv 文件动态链接到 HTML 表
【发布时间】:2021-12-10 11:18:47
【问题描述】:

我正在尝试使用 Flask 和 Jinja2 在我的 Web 应用程序中显示来自 CSV 文件的数据。当我激活我的代码时,我的印象是 Flaks 无法链接保存在子文件夹“模板”中的 HTML 代码和我的 python 代码(app.py)和保存在主文件“项目”中的 csv 文件。

你能帮帮我吗?请在下面找到我的代码。

Python 代码(app.py):

import flask

import jinja2

from flask import Flask

from flask import render_template

from flask import request

import csv

@app.route("/seeall")

def seeallform():

html_file = open("templates/seeall.html")
content = html_file.read()
html_file.close()
return content


``def template2():

templateLoader = jinja2.FileSystemLoader(searchpath="./")
templateEnv = jinja2.Environment(loader=templateLoader)
TEMPLATE_FILE = "templates/seeall.html"
template = templateEnv.get_template(TEMPLATE_FILE)
outputText = template.render() 
print (outputText)

def table_allissues():

if request.method == "GET":
    return render_template ("templates/seeall.html")
elif request.method == "POST":
    results = []

    data_csv = request.form.get("data.csv").split('\n')
    reader = csv.DictReader(data_csv)

for row in reader:
    results.append(dict(row))

return render_template("templates/seeall.html", results=results)

HTML 代码(seeall.htlm):

<!DOCTYPE html>

<html lang="en">

<head>
<title>View all issues</title>

</head>

<body>

<header>

<p><a href="/">Go back on homepage</a></p>

</header>  

<table>
<tr>

    {% for headers in results[0].keys() %}

        <th>{{header}}</th>

    {% endfor %}

</tr>
{% for row in results %}

    <tr>

        <td>{{row['Regulatory_Domain']}}</td>

        <td>{{row['Detection_Date']}}</td>

        <td>{{row['ID_Client']}}</td>

        <td>{{row['Issue_ID_Name']}}</td>

        <td>{{row['Status_Issue']}}</td>

    </tr>

{% endfor %}
</table>

</body>

</html>

【问题讨论】:

    标签: python csv flask html-table jinja2


    【解决方案1】:

    经过一番谷歌搜索,我找到了一个适合烧瓶和 django 项目的好解决方案。
    来源为:Dynamically-Link-CSV-Flask-Django

    python 代码:

        import pandas 
        @app.route('/') 
        def home(): 
            filename = '/path/to/my/data.csv' 
         
            # to read the csv file using the pandas library 
            data = pandas.read_csv(filename, header=0) 
         
            myData = data.values 
            return render_template('home.html', myData=myData) 
    

    html代码:

        <table class="table table-striped table-sm"> 
          <tbody> 
            {% for value in myData%} 
            <tr> 
              <td>{{ value[0] }}</td> 
              <td>{{ value[1] }}</td> 
              <td>{{ value[2] }}</td> 
              <td>{{ value[3] }}</td> 
            </tr> 
            {% endfor %} 
          </tbody> 
        </table> 
    

    【讨论】:

      猜你喜欢
      • 2020-08-05
      • 2017-12-14
      • 2013-04-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多