def submit(): # 从前端获取表单数据 line = request.form['line'] date = request.form['date'] model = request.form['model'] issue = request.form['issue'] prod_date = request.form['prod_date'] shift = request.form['shift'] prod_line = request.form['prod_line'] responsible = request.form['responsible']
时间: 2024-03-22 21:41:49 浏览: 14
根据你提供的代码和错误提示,可以看出问题出在获取表单数据时缺少了名为"issue"的参数。你需要确保前端发送的请求中包含名为"issue"的参数,可以通过查看前端代码或者请求参数来确认是否存在。如果确实缺少该参数,可以尝试添加一个默认值或者在前端中添加该参数。另外,还需要确保其他参数的获取也是正确的,以避免类似的错误。以下是可能的修改代码:
```
def submit():
# 从前端获取表单数据
line = request.form['line']
date = request.form['date']
model = request.form['model']
issue = request.form.get('issue', 'default_value')
prod_date = request.form['prod_date']
shift = request.form['shift']
prod_line = request.form['prod_line']
responsible = request.form['responsible']
```
在上述代码中,我们通过使用`request.form.get('issue', 'default_value')`来获取名为"issue"的参数,如果该参数不存在,则使用默认值"default_value"。这样可以避免由于缺少参数而导致的错误。
相关问题
@app.route('/submit', methods=['POST']) def submit(): # 从前端获取表单数据 line = request.form['line'] date = request.form['date'] model = request.form['model'] lists = request.form.get('lists') prod_date = request.form['prod_date'] shift = request.form['shift'] prod_line = request.form['prod_line'] responsible = request.form['responsible'] # 将数据存储到 Excel 文件中 file_path = 'D:/data.xlsx' wb = load_workbook(file_path) ws = wb.active ws.append([line, date, model, lists, prod_date, shift, prod_line, responsible]) wb.save(file_path)
你所做的修改是正确的,将 `request.form['lists']` 修改为 `request.form.get('lists')` 可以避免 KeyError 错误的发生。如果 'lists' 键不存在,则会返回 None,这样代码就不会抛出异常了。
另外,你还可以在代码中添加一些对表单数据的验证逻辑,以确保表单数据的正确性。例如,你可以检查表单数据是否符合预期的数据类型、数据格式、数据范围等要求,以避免无效的数据被存储到 Excel 文件中。这样可以提高代码的健壮性和可靠性。
from flask import Flask, render_template, request import pandas as pd from openpyxl import load_workbook app = Flask(__name__) @app.route('/') def index(): return render_template('index2.html') @app.route('/submit', methods=['POST']) def submit(): # 从前端获取表单数据 line = request.form['line'] date = request.form['date'] model = request.form['model'] lists = request.form['lists'] prod_date = request.form['prod_date'] shift = request.form['shift'] prod_line = request.form['prod_line'] responsible = request.form['responsible'] # 将数据存储到 Excel 文件中 file_path = 'D:/data.xlsx' wb = load_workbook(file_path) ws = wb.active ws.append([line, date, model, lists, prod_date, shift, prod_line, responsible]) wb.save(file_path)
这段代码是一个基于 Flask 框架的 Web 应用程序,它提供了两个路由,一个是 '/',一个是 '/submit'。当用户访问 '/' 时,它会返回一个名为 'index2.html' 的 HTML 模板文件;当用户通过 POST 方法提交表单数据到 '/submit' 时,它会将表单数据存储到一个名为 'data.xlsx' 的 Excel 文件中。
具体来说,这段代码使用了 Flask 框架的装饰器语法来定义路由,其中 @app.route('/') 表示访问根路径时会执行 index() 函数,@app.route('/submit', methods=['POST']) 表示提交表单数据时会执行 submit() 函数。在 submit() 函数中,它首先通过 request.form 来获取从前端提交的表单数据,然后使用 openpyxl 库来打开 Excel 文件,并将表单数据写入到 Excel 文件的第一张工作表中。最后,它使用 wb.save() 方法来保存 Excel 文件。