兩個問題:1、請你幫我修改爲什麽查詢時查詢不到數據,2、爲什麽存儲數據會將之前存儲的給覆蓋掉?我需要在下一行新增不要覆蓋。請修改from datetime import datetime from flask import Flask, render_template, request import pandas as pd app = Flask(name) # 首页 @app.route('/') def index(): return render_template('index.html') # 登记数据页面 @app.route('/record', methods=['GET', 'POST']) def record(): if request.method == 'POST': # 获取表单数据 date_str = request.form['date'] shift = request.form['shift'] line = request.form['line'] machine = request.form['machine'] issue = request.form['issue'] isn = request.form['isn'] # 转换日期格式为datetime类型 date = datetime.strptime(date_str, '%Y-%m-%d') # 将数据保存到Excel文件 data = pd.DataFrame({ '日期': [date], '班次': [shift], '线别': [line], '不良机种': [machine], '不良现象': [issue], '不良ISN': [isn] }) filepath = 'D:/data.xlsx' data.to_excel(filepath, index=False, header=False if not pd.read_excel(filepath).size else True) return '<h1>数据已保存</h1>' else: return render_template('record.html') # 查询数据页面 @app.route('/query', methods=['GET', 'POST']) def query(): if request.method == 'POST': # 获取表单数据 date_str = request.form['date'] line = request.form['line'] machine = request.form['machine'] issue = request.form['issue'] # 转换日期格式为datetime类型 date = datetime.strptime(date_str, '%Y-%m-%d') # 从Excel文件中查询数据 data = pd.read_excel('D:/data.xlsx') query = data[(data['日期'] == date) & (data['线别'] == line) & (data['不良机种'] == machine) & (data['不良现象'] == issue)] query_html = query.to_html() return query_html else: return render_template('query.html') if name == 'main': app.run()
时间: 2023-09-15 12:24:34 浏览: 122
针对您的第一个问题,查询不到数据的情况可能是因为查询条件不满足或者数据还没有被存储到文件中。建议您检查一下查询条件是否正确,以及确认数据已经成功保存到 Excel 文件中。
针对您的第二个问题,存储数据时会将之前存储的数据覆盖掉,是因为在每次存储数据时使用了相同的文件路径,并且没有指定存储的方式。您可以将存储文件的方式修改为在原文件的基础上新增一行数据,可以使用 pandas 的 append() 方法实现。修改后的代码如下:
```python
# 将数据保存到Excel文件
data = pd.DataFrame({
'日期': [date],
'班次': [shift],
'线别': [line],
'不良机种': [machine],
'不良现象': [issue],
'不良ISN': [isn]
})
filepath = 'D:/data.xlsx'
if pd.read_excel(filepath).empty:
data.to_excel(filepath, index=False)
else:
writer = pd.ExcelWriter(filepath, engine='openpyxl', mode='a')
data.to_excel(writer, index=False, header=False)
writer.save()
```
这样,如果文件不存在数据,则直接将数据写入文件中;如果文件中已经存在数据,则使用 append() 方法将数据写入到文件的下一行。
阅读全文