flask读取上传的csv文件并展示在屏幕上
时间: 2023-10-08 18:13:03 浏览: 198
读取CSV文件
可以的,您可以使用 Flask-WTF 表单来读取上传的 CSV 文件并将其展示在屏幕上。您可以在 Flask 控制器中编写这样的代码:
```python
from flask import Flask, render_template, request
from flask_wtf import FlaskForm
from wtforms import FileField
import pandas as pd
app = Flask(__name__)
app.config['SECRET_KEY'] = 'secret'
class UploadForm(FlaskForm):
file = FileField()
@app.route('/', methods=['GET', 'POST'])
def upload_file():
form = UploadForm()
if form.validate_on_submit():
file = request.files['file']
# 读取上传的 CSV 文件并转换为 Pandas DataFrame 对象
df = pd.read_csv(file)
# 在页面上展示 DataFrame
return render_template('display.html', df=df.to_html())
# 如果请求方法是 GET,或者上传的文件验证失败,就渲染上传表单模板
return render_template('upload.html', form=form)
```
然后,您需要创建模板 `upload.html` 和 `display.html`,它们应该与 Flask 控制器代码位于同一目录下。
在上传模板中,您可以使用 Flask-WTF 的表单助手来实现文件上传功能,如下所示:
```html
<!DOCTYPE html>
<html>
<head>
<title>Upload CSV</title>
</head>
<body>
<h1>Upload a CSV file</h1>
<form method="POST" enctype="multipart/form-data">
{{ form.hidden_tag() }}
{{ form.file() }}
<input type="submit" value="Upload">
</form>
</body>
</html>
```
在展示页面中,您可以在 HTML 表格中显示 Pandas DataFrame,如下所示:
```html
<!DOCTYPE html>
<html>
<head>
<title>CSV Display</title>
</head>
<body>
<h1>CSV Display</h1>
{{ df|safe }}
</body>
</html>
```
这样,您就可以通过 Flask 应用程序读取上传的 CSV 文件并将其展示在屏幕上了。
阅读全文