如何使用Flask将SQL结果传递给HTML

时间:2018-03-24 22:52:23

标签: python html mysql flask

我正在开发一个基于网络的表单,用于跟踪产品的创建和修复。每个产品都包含许多组件,每个组件都有自己的序列号和硬件版本。我有一个用于创建产品的工作表单,并希望使用相同的模板来加载已存在的产品中的所有内容的序列号,以便在更换程序集时,我们可以跟踪新的序列号。我正在使用flask和mysql。

<label class="control-label col-sm-2" for="frontCameraSN">Front Camera SN:</label>
     <input type="text" class="form-control col-sm-4" name="frontCameraSN" required value = {{ camera_front_SN }}>
     <label class="control-label col-sm-2" for="rearCameraSN">Rear Camera SN:</label>
     <input type="text" class="form-control col-sm-4" name="rearCameraSN" required value = {{ camera_rear_SN }}>

每个输入的值对应于数据库中的列。当我运行查询时,它返回一个元组,该元组本质上是一个字典,其中列作为键,数据作为值。如何将这个元组分解,以便它是变量的集合,每个变量的键都是名称?

这是返回的内容

{'cart_SN': '123', 'center_SN': '2983098', 'drive_SN': '098', 'steer_front_SN': '093280', 'steer_rear_SN': '8098', 'led_1_SN': '098', 'led_2_SN': '098', 'led_3_SN': '098', 'led_4_SN': '098', 'camera_front_SN': '098', 'battery_board_SN': '098', 'speaker_board_SN': '089', 'ibcs_SN': '098'}

这就是我处理查询的方式

cartSN=request.form['cartSN']
db = MySQLdb.connect(host="localhost",
                         user="Illnevertell",
                         password="itsasecret",
                         db="thispartisright")
sql = "SELECT * FROM cart_data.cart_info WHERE cart_SN = "+cartSN
cur = db.cursor(MySQLdb.cursors.DictCursor)
cur.execute(sql)
results=cur.fetchall()
return redirect('/carts/build')

我想将变量作为参数传递给重定向以填充表单。

1 个答案:

答案 0 :(得分:0)

我已经弄明白了。而不是使用

fecthall()

我切换到

fetchone()

因为我一次只返回一行。然后我使用**结果将结果传递给重定向。效果很好。