成人午夜一区二区_操碰在线视频_国产精品麻豆一区二区三区_中文黄色一级片_欧美日本中文字幕_高清视频91

當前位置: 首頁 / 技術干貨 / 正文
好程序員Python培訓分享簡述fetchone()函數(shù)

2020-10-30

Python培訓

  fetchone()函數(shù)報'NoneType' object is not subscriptable的錯誤今天有人向好程序員Python培訓老師請教一道python操作mysql的題,我也是差一點掉坑里去了。題是這樣的:python操作數(shù)據(jù)庫,實現(xiàn)用戶的注冊登陸功能。其中最主要的是數(shù)據(jù)庫的存入和讀取。

Python2

其中一段代碼如下:

#查詢與用戶名對應的密碼

sql = "select hash_password from user where username ='{}'".format(self.username)

self.cursor.execute(sql)

#輸出查詢結(jié)果

print(self.cursor.fetchone()[0])

print(self.passwd)

#對比,查詢結(jié)果與加密后的密碼

if self.cursor.fetchone()[0] == self.passwd:

print('登錄成功')

else:

print('請輸入正確的密碼')

乍一看沒什么錯,但是執(zhí)行報錯了,

e10adc3949ba59abbe56e057f20f883e

e10adc3949ba59abbe56e057f20f883e

rl.login()

File "xxxxxx", line 314,in login

if self.cursor.fetchone()[0] == self.passwd:

TypeError: 'NoneType' object is not subscriptable

怎么回事呢?明明輸出的兩個密碼是一樣的,怎么對比出錯呢,而且報錯也很奇怪,NoneType說明對比的兩個值中有一個是None,self.passwd排除,那只能說self.cursor.fetchone()[0]None,我將if注釋了,再次print()輸出一下self.cursor.fetchone()[0],果然又報錯了

print(self.cursor.fetchone()[0])

TypeError: 'NoneType' object is not subscriptable

這下捉急了,百度唄,查了半天也沒查到什么。過了一會才想起如果mysql執(zhí)行語句結(jié)果的查詢集只有一行數(shù)據(jù),是不能調(diào)用兩次self.cursor.fetchone()的,也就是說,第二次調(diào)用根本不可能有結(jié)果。那我把代碼改一下好了。

sql = "select hash_password from user where username ='{}'".format(self.username)

self.cursor.execute(sql)

sql_password = self.cursor.fetchone()[0]

print(sql_password)

print(self.passwd)

if sql_password == self.passwd:

print('登錄成功')

else:

print('請輸入正確的密碼')

OK,成功了,沒報錯了,可真不容易。

用法如下所示:

fetchone()用法:

cur.execute("select host,user,password from user where user='%s'" %acc)

jilu = cur.fetchone() ##此時 通過 jilu[0],jilu[1],jilu[2]可以依次訪問host,user,password

fetchall()用法:

cur.execute("select * from user")

如果select本身取的時候有多條數(shù)據(jù)時:

cursor.fetchone():將只取最上面的diyi條結(jié)果,返回單個元組如('id','title'),然后多次使用cursor.fetchone(),依次取得下一條結(jié)果,直到為空。

cursor.fetchall() :將返回所有結(jié)果,返回二維元組,如(('id','title'),('id','title')),

如果select本身取的時候只有一條數(shù)據(jù)時:

cursor.fetchone():將只返回一條結(jié)果,返回單個元組如('id','title')。

cursor.fetchall() :也將返回所有結(jié)果,返回二維元組,如(('id','title'),),

備注:其中的idtitle為具體的內(nèi)容

pythonmysql在使用fetchall或者是fetchone時,綜合起來講,fetchall返回二維元組(元組中含有元組),fetchone只返回一維元組。

好程序員公眾號

  • · 剖析行業(yè)發(fā)展趨勢
  • · 匯聚企業(yè)項目源碼

好程序員開班動態(tài)

More+
  • HTML5大前端 <高端班>

    開班時間:2021-04-12(深圳)

    開班盛況

    開班時間:2021-05-17(北京)

    開班盛況
  • 大數(shù)據(jù)+人工智能 <高端班>

    開班時間:2021-03-22(杭州)

    開班盛況

    開班時間:2021-04-26(北京)

    開班盛況
  • JavaEE分布式開發(fā) <高端班>

    開班時間:2021-05-10(北京)

    開班盛況

    開班時間:2021-02-22(北京)

    開班盛況
  • Python人工智能+數(shù)據(jù)分析 <高端班>

    開班時間:2021-07-12(北京)

    預約報名

    開班時間:2020-09-21(上海)

    開班盛況
  • 云計算開發(fā) <高端班>

    開班時間:2021-07-12(北京)

    預約報名

    開班時間:2019-07-22(北京)

    開班盛況
IT培訓IT培訓
在線咨詢
IT培訓IT培訓
試聽
IT培訓IT培訓
入學教程
IT培訓IT培訓
立即報名
IT培訓

Copyright 2011-2023 北京千鋒互聯(lián)科技有限公司 .All Right 京ICP備12003911號-5 京公網(wǎng)安備 11010802035720號

主站蜘蛛池模板: 国产精品久久久久一区二区三区 | 爱情岛论坛首页永久网址 | 欧美日韩电影在线观看 | 日韩av一级片 | 国产一级黄色影片 | 色综合美女| 精品久久久999 | 亚洲国产精品一区二区久久 | 国产黄a三级三级三级av在线看 | 午夜视频网 | 日韩欧美中文字幕在线视频 | 国产成人精品在线 | 日韩中文字幕在线播放 | 91精品国产99久久久久久 | 久热导航 | 日本公妇乱淫免费视频一区三区 | 亚洲视频免费在线观看 | www.在线播放 | 欧美成人一区二区 | 久久久久久久久久久网站 | 精品一区二区在线视频 | 亚洲视频在线一区 | 国产精品不卡视频 | 精品视频久久久 | 男女污视频在线观看 | 精品国产一区二区三区久久久 | 黄色电影网站大全 | 亚洲国产一区二区视频 | 青青草福利视频 | 中文字幕欧美一区 | 精品日韩欧美 | 国产伦精品一区二区 | 日韩综合久久 | 久久中文视频 | 精品视频免费 | 成人在线观看av | 国产精品五区 | 欧美在线视频网 | 日本美女一区二区三区 | 久久久久久久久免费 | 美女国内精品自产拍在线播放 |