請你幫我寫一個Flask網頁,需要實現如下功能,網頁界面:左邊菜單欄,有兩個組件可以進行登記資料、一個查詢資料。2、網站可以寫入數據,比如異常時間、異常地點、異常現象、生產綫別、生產班別、生產機種、備注等.4、然後提交的數據保存在D盤XLSL文檔中,并且查詢可以按照條件調用這些歷史數據.5、請你幫我完成完整的代碼
时间: 2023-08-31 14:39:07 浏览: 89
一个使用Flask+Layui Fly Template实现的社区项目,它使用Flask-admin实现简单的后端管理功能 数
好的,以下是一个简单的Flask网页应用,实现了您提到的功能:
```python
from flask import Flask, render_template, request
import pandas as pd
app = Flask(__name__)
# 定义表头
cols = ['时间', '地点', '现象', '生产线别', '生产班别', '生产机种', '备注']
# 定义数据存储路径
data_file = 'D:/data.xlsx'
# 读取历史数据
data = pd.read_excel(data_file, header=None, names=cols)
# 定义主页路由
@app.route('/')
def index():
return render_template('index.html')
# 定义登记数据路由
@app.route('/add_data', methods=['POST'])
def add_data():
# 获取表单数据
time = request.form.get('time')
loc = request.form.get('location')
symptom = request.form.get('symptom')
line = request.form.get('line')
shift = request.form.get('shift')
type = request.form.get('type')
note = request.form.get('note')
# 创建新行
new_row = pd.DataFrame({
'时间': [time],
'地点': [loc],
'现象': [symptom],
'生产线别': [line],
'生产班别': [shift],
'生产机种': [type],
'备注': [note]
})
# 将新行加入数据表
global data
data = pd.concat([data, new_row], ignore_index=True)
# 将数据表写入文件
data.to_excel(data_file, index=False, header=False)
# 返回成功信息
return '数据提交成功!'
# 定义查询数据路由
@app.route('/query_data', methods=['POST'])
def query_data():
# 获取查询条件
time = request.form.get('time')
loc = request.form.get('location')
symptom = request.form.get('symptom')
line = request.form.get('line')
shift = request.form.get('shift')
type = request.form.get('type')
# 构造查询条件
query = True
if time:
query &= (data['时间'] == time)
if loc:
query &= (data['地点'] == loc)
if symptom:
query &= (data['现象'] == symptom)
if line:
query &= (data['生产线别'] == line)
if shift:
query &= (data['生产班别'] == shift)
if type:
query &= (data['生产机种'] == type)
# 执行查询
result = data[query]
# 返回查询结果
return result.to_html(index=False)
if __name__ == '__main__':
app.run(debug=True)
```
上面的代码使用了Flask框架和Pandas库,实现了您需要的功能。其中,主页路由返回一个HTML模板,包含了表单和查询结果的展示;登记数据路由获取表单数据,将新行加入数据表并写入文件;查询数据路由获取查询条件,构造查询语句并执行查询,将查询结果转换为HTML表格返回。您需要自己编写一个HTML模板(如index.html),包含菜单、表单和查询结果的展示,以及样式和交互逻辑等。
阅读全文