我希望从表单发送的数据可以进行查询,根据输入的姓名获取4名学生的StudentID。 在此之后,我想将所有这些StudentID存储在另一个表中,该表有4列,分别为Student1、Student2、Student3、Student4。每列存储每个学生的id
我对烧瓶还不熟悉,我的方法可能是完全错误的。欢迎提出任何建议。 我怀疑我是否可以使用多个游标。也可以为每个函数执行命令
这是我的密码:
@app.route("/group", methods = ['POST', 'GET'])
def group():
cnx = mysql.connector.connect(user='root', password='somepassword', database ='somedatabase')
cursor = cnx.cursor(buffered = True)
stud1 = request.form.get('student1')
stud2 = request.form.get('student2')
stud3 = request.form.get('student3')
stud4 = request.form.get('student4')
# stud1 to stud 4 store the names of four student
query = (" SELECT StudentID FROM Students "
" WHERE Name = '%s' OR Name = '%s' OR Name = '%s' OR Name = '%s'" %(stud1,stud2,stud3,stud4))
cursor.execute(query)
data1 = cursor.fetchall()
# data1 as tuple contains all the 4 studentID
mylist = []
for row in data1:
mylist.append(' '.join(str(x) for x in row))
# mylist is used to get the values stored in data1 in proper format
_query = (" INSERT INTO Groups(Student1, Student2, Student3, Student4)"
" VALUES ( %s, %s, %s, %s )", (mylist[0],mylist[1], mylist[2],mylist[3]))
# here is my problem, the error i get is, list index out of range
cursor.execute(_query)
cursor.commit()
cursor.close()
cnx.close()
return render_template('forms.html')
根据这个错误,这意味着mylist是空的,但是如果我跳过第二个查询,只将结果存储在mylist中并打印,它就会工作。 对于第二个查询,我尝试将值存储为字典,但没有任何帮助
_query = (" INSERT INTO Groups(Student1, Student2, Student3, Student4)"
" VALUES ( %(st1)s, %(st2)s, %(st3)s, %(st4)s )")
data_query = {
'st1' : mylist[0],
'st2' : mylist[1],
'st3' : mylist[2],
'st4' : mylist[3]
}
cursor.execute(_query,data_query)
我的html代码:
<form method ="post" action = "/group">
<label>Student1:</label>
<input type="text" name="student1">
<label>Student2:</label>
<input type="text" name="student2">
<label>Student3:</label>
<input type="text" name="student3">
<label>Student4:</label>
<input type="text" name="student4">
<input type="submit" value ="submit">
</form>
目前没有回答
相关问题 更多 >
编程相关推荐