首先,介绍一下sqlite数据库,它是一个轻量级的数据库,易于移植,适合做小型的数据库开发。结合python语言操作可以提高开发效率。
但是,在结合python操作sqlite数据库时一定要注意以下两个坑:
- python在做完SQL的insert,update,delete即DML(数据操纵语言)后,一定要提交,即commit,否则python会默认回滚,你想插入的数据就,,没了!!。
- python查询结果是一个游标,要想获得查询的结果需要两重循环遍历这个游标!!。
def change(name,pwd):
database = "./db/management.db"
conn = sq.connect(database)
sql = "update student set scode="+pwd+" where sno="+name+";"
conn.execute(sql)
conn.commit()
conn.close()
return 0
这是正确的DML操作方式,上述是一个操作数据库修改学生密码的函数。conn.commit()即提交。
def login():
name = request.form.get("username")
pwd = request.form.get("pwd")
print(pwd)
pwdr = databaseWork.searchforpwd(name)
for i in pwdr:
for j in i:
print(j)
if(pwd != j):
return "<script>alert('密码不正确')</script>"
else:
return render_template("show_temp.html", names=name)
这是正确的查询方式,**切记!!两重循环!!**外重循环进入游标的一行数据(可能有多列),内重循环则是待查询的数据了。