烧瓶-查询CSV并将结果传递到render_template()



我创建了两个网页-索引和报告。索引页面包含一个输入框,用户可以在其中输入邮政编码。当按下提交按钮时,代码会读入并根据邮政编码查询CSV文件。然后将结果传递给render_template。

当我运行代码时,报告页面上显示的只是CSV文件的标题行。我不确定我做错了什么。

下面是我的app.py文件的一个片段

app = Flask(__name__)
@app.route('/')            
def index():
return render_template('index.html')
@app.route('/reports', methods=['POST'])  
def reports():
zip_code = request.form.get('zip_code')
df = pd.read_csv('real-estate.csv')
myData = df[df['zip'] == zip_code] 
return render_template('reports.html', zip_code=zip_code, myData=myData)

以下是我的报告文件的内容。

{% extends 'base.html' %}
{% block content %}     
<div class='container'>
<h2>Real Estate Transactions</h2>

<ul>
{% for rec in myData %}
<li>{{ rec }}</li>
{% endfor %}
</ul>
</div>
{% endblock %}

尝试使用iterrows()迭代数据帧的行。

<ul>
{% for key,value in myData.iterrows() -%}
<li id="row-{{key}}">{{value}}</li>
{% endfor -%}
</ul>

一个表格的例子看起来是这样的。

<table>
<thead>
<tr>
{% for column in myData.columns -%}
<th>{{column}}</th>
{% endfor -%}
</tr>
</thead>
<tbody>
{% for key,value in myData.iterrows() -%}
<tr id="row-{{key}}">
{% for v in value.values -%}
<td>{{v}}</td>
{% endfor -%}
</tr>
{% endfor -%}
</tbody>
</table>

相关内容

最新更新