python - 如何在python flask form post api中加载和读取excel文件
问题描述
嗨,我想上传一个前端的 excel 文件表单,在后端我想读取该 Excel 文件的所有内容并将其存储在我的数据库中
@app.route('/getfile', methods=['POST'])
def getfile():
try:
file = request.files['file']
foo=file.filename
dframe = pd.read_excel(foo)
return dframe
except Exception as ex:
return ex
我正在获取文件名,并且从 panda 我想读取该 excel 文件数据,但它显示不存在这样的目录
from flask import Flask, request, jsonify
import flask_excel as excel
app = Flask(__name__)
import json
import xlrd
import os
import pandas as pd
from collections import OrderedDict
from pathlib import Path
from flask_cors import CORS,cross_origin
from json import loads
import pandas as pd
wsgi_app = app.wsgi_app
excel.init_excel(app)
代码 1
@app.route("/upload", methods=['GET', 'POST'])
def upload_file():
if request.method == 'POST':
foo = request.get_array(field_name='file')
# data = json.dumps(foo, )
# for i in data[1:]:
return jsonify({"result":foo })
#代码 2
@app.route('/getfile', methods=['POST'])
def getfile():
try:
file = request.files['file']
foo=file.filename
dframe = pd.read_excel(foo)
return dframe
except Exception as ex:
return ex
第一个代码给我 404 异常和第二个代码给我“没有这样的目录退出”任何人都可以帮助我阅读 excel 文件的内容
解决方案
from flask import Flask, request, jsonify
from tablib import Dataset
app = Flask(__name__)
@app.route('/upload', methods=['POST'])
def upload_file():
# I used form data type which means there is a
# "Content-Type: application/x-www-form-urlencoded"
# header in my request
raw_data = request.files['myfile'].read() # In form data, I used "myfile" as key.
dataset = Dataset().load(raw_data)
return jsonify(dataset.export('json'))
if __name__ == '__main__':
app.run(debug=True)
这个小片段工作得很好。您无需使用庞大的数据分析库将某些内容导入数据库。但是如果你坚持使用 pandas,你的问题需要另一个答案。
在做任何其他事情之前查看文档:
http://flask.pocoo.org/docs/1.0/patterns/fileuploads/
http://docs.python-tablib.org/en/master/tutorial/#importing-data
推荐阅读
- scala - IntelliJ Scala“包”不在“新建”菜单中
- java - 片段中缺少 TextView 数据(文本)
- php - Woocommerce:添加第二个电子邮件地址不起作用,除非收件人是管理员
- prolog - 获取所有已知的 prolog 事实(使用特殊格式)
- javascript - 使用 Airtable API 列出记录
- php - 从表单选择中检索输入 - Laravel
- android - 使用 android 可访问性从 imageview 获取图像
- angular - 如何以角度进行服务器端 API 调用以绕过 CORS 错误
- android - 使用片段的谷歌地图
- azure-data-factory - 监控未显示所有管道运行