<track id="hhhhf"></track>

<track id="hhhhf"></track><menuitem id="hhhhf"></menuitem>

      <address id="hhhhf"><track id="hhhhf"><span id="hhhhf"></span></track></address>

        <big id="hhhhf"><strike id="hhhhf"><rp id="hhhhf"></rp></strike></big><track id="hhhhf"><span id="hhhhf"><rp id="hhhhf"></rp></span></track>

        <pre id="hhhhf"><strike id="hhhhf"></strike></pre>

        <pre id="hhhhf"><pre id="hhhhf"><strike id="hhhhf"></strike></pre></pre>

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

              2020-10-30

              Python培訓

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

              Python2

              其中一段代碼如下:

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

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

              self.cursor.execute(sql)

              #輸出查詢結果

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

              print(self.passwd)

              #對比,查詢結果與加密后的密碼

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

              print('登錄成功')

              else:

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

              乍一看沒什么錯,但是執行報錯了,

              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執行語句結果的查詢集只有一行數據,是不能調用兩次self.cursor.fetchone()的,也就是說,第二次調用根本不可能有結果。那我把代碼改一下好了。

              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本身取的時候有多條數據時:

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

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

              如果select本身取的時候只有一條數據時:

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

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

              備注:其中的idtitle為具體的內容

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

              好程序員公眾號

              • · 剖析行業發展趨勢
              • · 匯聚企業項目源碼

              好程序員開班動態

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

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

                開班盛況

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

                開班盛況
              • 大數據+人工智能 <高端班>

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

                開班盛況

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

                開班盛況
              • JavaEE分布式開發 <高端班>

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

                開班盛況

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

                開班盛況
              • Python人工智能+數據分析 <高端班>

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

                預約報名

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

                開班盛況
              • 云計算開發 <高端班>

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

                預約報名

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

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

              Copyright 2011-2020 北京千鋒互聯科技有限公司 .All Right 京ICP備12003911號-5 京公網安備 11010802035720號

              啊 亲我下面 快啊,欧美久久免费一级鲁丝片,中国女人18毛片A级毛片视频

              <track id="hhhhf"></track>

              <track id="hhhhf"></track><menuitem id="hhhhf"></menuitem>

                  <address id="hhhhf"><track id="hhhhf"><span id="hhhhf"></span></track></address>

                    <big id="hhhhf"><strike id="hhhhf"><rp id="hhhhf"></rp></strike></big><track id="hhhhf"><span id="hhhhf"><rp id="hhhhf"></rp></span></track>

                    <pre id="hhhhf"><strike id="hhhhf"></strike></pre>

                    <pre id="hhhhf"><pre id="hhhhf"><strike id="hhhhf"></strike></pre></pre>