# 导入Flask对象导入数据库 from flask import Flask render_template request redirect import pymysql # 使用Flask对象创建一个app对象 app = Flask__name__ approuteaddprinter methods=GET POST def add_printer device_list = #打印
在前端代码中,model字段的name属性为"model",但是在后端代码中获取该字段的值时,使用的是request.form.get("model"),这里的"model"应该改为"model[]",即可获取到多个model字段的值。修改后的代码如下:
# 导入Flask对象,导入数据库
from flask import Flask, render_template, request, redirect
import pymysql
# 使用Flask对象创建一个app对象
app = Flask(__name__)
@app.route("/addprinter", methods=["GET", "POST"])
def add_printer():
device_list = [] #打印机情报
if request.method == "GET":
return render_template("addprinter.html")
print(request.form)
device_id = request.form.get("device_id")
arr_data = request.form.get("arr_data")
device_sn = request.form.get("device_sn")
buy_dept = request.form.get("buy_dept")
catalog = request.form.get("catalog")
series = request.form.get("series")
model = request.form.getlist("model[]") # 修改这里
location = request.form.get("location")
location_detail = request.form.get("location_detail")
device_status = request.form.get("device_status")
stock_status = request.form.get("stock_status")
borrower = request.form.get("borrower")
borrow_data = request.form.get("borrow_data")
print("网页上返回arr_data:", arr_data, "网页上返回device_sn:", device_sn, buy_dept, catalog, model) # test输出
#连结数据库
conn = pymysql.connect(host="localhost", user="root", password="1111", db="demo")
cursor = conn.cursor()
# 使用 execute() 方法执行 SQL 查询
sql = "INSERT INTO devices (device_id, arr_data,device_sn,buy_dept, catalog, series, model, location, " \
"location_detail, device_status, stock_status, borrower, borrow_data) " \
"VALUES(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)"
cursor.execute(sql, [device_id, arr_data, device_sn, buy_dept, catalog, series, ','.join(model), location, location_detail, device_status, stock_status, borrower, borrow_data]) # 修改这里
conn.commit()
# 关闭连接
cursor.close()
conn.close()
return "xxx"
if __name__ == "__main__":
app.run()
另外,在SQL语句中,因为model字段的值可能有多个,所以需要使用join()函数将多个值拼接成一个字符串,然后再存入数据库中。同时,model字段的类型需要修改为VARCHAR类型。修改后的数据库表定义如下:
CREATE TABLE devices(
device_id CHAR(10) PRIMARY KEY,
arr_data DATE,
device_sn CHAR(15) NOT NULL,
buy_dept CHAR(10),
catalog CHAR(5),
series CHAR(10),
model VARCHAR(50) NOT NULL,
location CHAR(10),
location_detail CHAR(10),
device_status CHAR(5),
stock_status CHAR(5),
borrower CHAR(5),
borrow_data DATE
)
原文地址: https://www.cveoy.top/t/topic/bzpE 著作权归作者所有。请勿转载和采集!