day15 pymysql模組的使用

2022-05-21 21:48:09 字數 3877 閱讀 6537

1

# 實現:使用python實現使用者登入,如果使用者存在則登入成功(假設該使用者已在資料庫中)23

4import pymysql

5 # user = input('

請輸入使用者名稱:')

6#7 # pwd = input('

請輸入密碼:')

891011 # 1

.連線12 conn = pymysql.connect(host='

127.0.0.1

', port=3306, user='

root

', password='

123456

', db='

sxl', charset='

utf8')

1314

15 # 2

.建立游標

16 cursor = conn.cursor(cursor=pymysql.cursors.dictcursor)

1718 #注意%s需要加引號 有sql注入問題li'

or 1=1 -- zdxv 或lijie

' --zdxv

19 # sql = "

select * from userinfo where name='%s' and pwd='%s'

" %(user, pwd) #注意修改內容及表

20# print(sql)

21# #解決sql注入問題

22 # sql="

select * from userinfo where name=%s and pwd=%s

" #!!!注意%s需要去掉引號,因為pymysql會自動為我們加上

23 # result=cursor.execute(sql,[user,pwd]) #pymysql模組自動幫我們解決sql注入的問題,只要我們按照pymysql的規矩來。

2425 # 3

.執行sql語句

26# cursor.execute(sql)

27 # result=cursor.execute(sql) #執行sql語句,返回sql查詢成功的記錄數目

28# print(result)

2930

31 # #1

.增加資料

32 # sql = "

insert into userinfo(name,pwd) values (%s,%s)

"33 # # effect_row = cursor.execute(sql,(123,123

))34

# #同時插入多條資料

35 # # effect_row = cursor.executemany(sql,[('

李四','

110'),('

王五','

119'

)])36

# # print(effect_row)

37 # # 2

.改38 # sql = "

update userinfo set name = %s where id = 4

"39 # effect_row = cursor.execute(sql,'

111')40

# print(effect_row)

41 # # 3

.刪42 # sql = "

delete from userinfo where id >13

"43 # effect_row =cursor.execute(sql)

44# print(effect_row)

45 # 4

.查46 sql = '

select * from userinfo

'47 num = cursor.execute(sql) #11

48 # # 4

.1fetchone():獲取下一行資料,第一次為首行;

49# #查詢第一行的資料

50 # row =cursor.fetchone()

51 # print(row) # (1, '

lijie

', '

123')52

# # 查詢第二行資料

53 # row =cursor.fetchone()

54 # print(row) # (3, '

zz', '

123'

)55 # 4

.2fetchall():獲取所有的資料

56 # rows =cursor.fetchall()

57 # print(rows) #((1, '

lijie

', '

123'), (3, '

zz', '

123'), (5, '

王五', '

119'), (6, '

123', '

123'

))58

#注1:在例項化的時候,將屬性cursor設定為pymysql.cursors.dictcursor,每一行的資料都會生成乙個字典

59 #[, , , ]

60# #注2:在fetchone示例中,在獲取行資料的時候,可以理解開始的時候,有乙個行指標指著第一行的上方,獲取一行,它就向下移動一行,所以當行指標到最後一行的時候,就不能再獲取到行的內容,所以我們可以使用如下方法來移動行指標:

61 # cursor.scroll(1,mode='

relative

') # 相對當前位置移動

62 # cursor.scroll(3,mode='

absolute

') # 相對絕對位置移動 以第一行為參考

63# # 第乙個值為移動的行數,整數為向下移動,負數為向上移動,mode指定了是相對當前位置移動,還是相對於首行移動

64 row =cursor.fetchone()

65 print(row) # 原始資料是135678

66 cursor.scroll(1,mode='

relative')

67 row =cursor.fetchone()

68 print(row) #

69 cursor.scroll(0,mode='

absolute

') #設定之後,游標相對於首行沒有任何變化,所以列印的結果為第一行資料

70 row =cursor.fetchone()

71 print(row) #

72 cursor.scroll(1,mode='

absolute')

73 row =cursor.fetchone()

74 print(row) #

75 cursor.scroll(-1,mode='

relative

') #設定之後,游標相對於當前位置往前移動了一行

76 row =cursor.fetchone()

77 print(row) #

78 #4.3 fetchmany(4

):獲取4行資料

79 # row = cursor.fetchmany(2

)80 # print(row) # [, ]

8182

8384

#在資料庫裡增、刪、改的時候,一定記得commit

85conn.commit()

8687

8889

9091

# 關閉連線,游標和連線都要關閉

92cursor.close()

93conn.close()

9495 # if

result:

96 # print('

登陸成功')

97 # else

:98 # print('

登入失敗

')

Day15 模組的練習

匯入標準庫模組 time 時間 標準庫模組 time 時間 練習 exercise02 03 import time 1.當前時間戳 1970年1月1日到現在經過的秒數 print time.time 1574153197.3360288 2.時間元組 年,月,日,時,分,秒,星期,年的天,夏令時偏...

PyMySQL模組的使用

pip3 install pymysqlimport pymysql 建立連線 conn pymysql.connect host 127.0.0.1 port 3306,user root password 123456 db db5 charset utf8 user input user pw...

day 15 模組和包

1 模組 用來從邏輯上組織python 變數,函式,類,邏輯,實現乙個功能 是.py結尾的python檔案 匯入後,可以直接呼叫其內部函式 模組名就是檔名 2 包是用來從邏輯上組織模組 實際是乙個目錄 目錄下包含.py檔案,必須有乙個 init py檔案 實質是執行該包下的 init py檔案 匯入...