欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

python筆記:mysql、redis操作方法

系統 1615 0

模塊安裝:

數據操作用到的模塊pymysql,需要通過pip install pymysql進行安裝。

redis操作用的模塊是redis,需要通過pip install redis進行安裝。

檢驗是否安裝成功:進入到Python命令行模式,輸入import pymysql、 import redis ,無報錯代表成功;

mysql操作方法如下:

查詢數據:fetchone、fetchmany(n)、fetchall()

            
import pymysql
#建立mysql連接,ip、端口、用戶名、密碼(passwd,不能寫成其他,例如:pwd或者p,否則報錯)、庫名
conn = pymysql.connect(host='127.0.0.1', user='root', passwd='123456', db='szz', port=3306, charset='utf8')
#創建游標
cur = conn.cursor(cursor=pymysql.cursors.DictCursor) #指定cursor的類型為字典,返回結果類型是字典,不再是元組
#執行sql,返回值是int,查詢出來的結果有幾條
cur.execute('select * from test')
#獲取第一條數據,游標cur所在的位置為1,游標從0開始,查詢結果類型為:字典
row_1 = cur.fetchone()
cur.scroll(0, mode='absolute')  #將游標移動到初始位置
#獲取前n行數據
row_2 = cur.fetchmany(n)
cur.scroll(0, mode='absolute')  #將游標移動到初始位置
#獲取所有數據,返回結果類型是:list,里面元素是字典
row_3 = cur.fetchall()
cur.scroll(0, mode='absolute')  #將游標移動到初始位置
print(row_2)
#關閉游標
cur.close()
#關閉連接
conn.close()
          

增加、更新、刪除數據

            
import pymysql
#建立mysql連接
conn = pymysql.connect(host='127.0.0.1', user='root', passwd='123456', db='szz', port=3306, charset='utf8')
#創建游標
cur = conn.cursor(cursor=pymysql.cursors.DictCursor) #指定cursor的類型為字典,返回結果類型是字典,不再是元組
#執行sql
sql = 'insert into test values(5, "斷點", "e10adc3949ba59abbe56e057f20f883e")'
sql_update = 'update test set name="薛之謙" where id=2 '
sql_del = 'delete from test where id = 3'
cur.execute(sql_del)
#insert、update、delete語句需要進行commit,否則無法保證修改或者新建的數據
conn.commit()
#關閉游標
cur.close()
#關閉連接
conn.close()
          

cursor的相對、絕對位置移動

            
import pymysql
#建立mysql連接
conn = pymysql.connect(host='192.168.3.66', user='root', passwd='123456', db='szz', port=3306, charset='utf8')
#創建游標
cur = conn.cursor(cursor=pymysql.cursors.DictCursor) #指定cursor的類型為字典,返回結果類型是字典,不再是元組
num = cur.execute('select * from testlhl')
print(num)                      #返回結果是int類型

row_1 = cur.fetchone()       # 此時游標的位置在1,數據庫取值從0下標開始,獲取數據庫第一條數據
cur.scroll(2, mode='absolute')   #absolute絕對位置,直接是將游標從0位置移動到指定的位置2
row_2 = cur.fetchone()       #讀取數據庫第3條數據,游標在3位置
cur.scroll(2, mode='relative')   #relative相對位置,相對于游標當前所在位置,進行移動,移動1位,游標在4位置,若相對移動的位置超過下標,則報out of range
row_3 = cur.fetchone()       #讀取第5條數據
#關閉游標
cur.close()
#關閉連接
conn.close()
          

mysql的增刪改查公共方法,代碼如下:

            
def getconn(host, user, passwd, db, sql, port=3306,charset='utf8'):
  conn = pymysql.connect(host=host, user=user, passwd=passwd, port=port, db=db, charset=charset) #建立連接
  cur = conn.cursor(cursor=pymysql.cursors.DictCursor)    #建立游標并指定游標類型
  cur.execute(sql)                      #執行sql
  if sql.startswith('select'):                #判斷sql是否是select
    res = cur.fetchone()
  else:
    conn.commit()                      #insert\delete\update語句執行完畢后需要進行commit
    res = 88
  cur.close()                         #關閉游標
  conn.close()                        #關閉連接
  return res
          

redis操作方法如下:

key的類型是string,進行set操作,模式{key, value},如下:

            
import redis
db = 0
#連接redis,password不簡寫(否則或報錯),db若不寫,則默認操作db0
conn_redis = redis.Redis(host='127.0.0.1', port=6379, password='123456', db=db)
#給redis添加值,傳值方式是key-value,key不可重復,value的形式盡量是string,也可以傳list、字典,redis內存放的是字節res = conn_redis.set('name', 'testredis')
#print(res)  #返回值是布爾類型,set成功,則返回true
conn_redis.set('days', '[10,4,5,12,44]')

#set key值到redis內,且可以設置過期時間,10s
result = conn_redis.setex('session', 'abcder1233@sdfrr', 10)  #單位是s
print(result)  #返回值是布爾類型,set成功,則返回true

#批量插入redis,可以寫入多個key-valye
conn_redis.mset(a='xiaohei', b='xiaobai', c='xiaohuang') 
#設置key時,可以設置文件夾,user文件夾,key:test,value:haha
conn_redis.set('user:test','haha')
          

獲取redis內的數據,通過key值進行獲取

            
import redis
import json
db = 0
#連接redis,password不簡寫(否則或報錯),db若不寫,則默認操作db0
conn_redis = redis.Redis(host='127.0.0.1', port=6379, password='123456', db=db)
#獲取redis的值,返回結果類型是bytes
res = conn_redis.get('abcd')
#使用decode()將bytes類型轉換為字符串:輸出>>>>>testredis
new_res = res.decode()
#使用json的loads,將json串(字符串)轉換為字典
dic_res = json.loads(new_res)

#獲取不存在的key,返回結果為None
res1 = conn_redis.get('asdfg')
print(res1.decode())    #輸出>>>>>>'NoneType' object has no attribute 'decode'

#獲取所有的keys,且循環遍歷進行輸入,使用decode()轉換為字符串
list_keys = conn_redis.keys()
for key in list_keys:
  print(key.decode())

#獲取所有的key中以n開頭的key,返回結果類型是list,元素類型是bytes 輸出>>>>>[b'nbeee', b'name', b'nest']
print(conn_redis.keys('n*'))
          

刪除redis內的值,通過key刪除

            
import redis
db = 0
#連接redis,password不簡寫(否則或報錯),db若不寫,則默認操作db0
conn_redis = redis.Redis(host='192.168.3.66', port=6379, password='123456', db=db)
#刪除存在的key,刪除key后,redis內不存在該key,返回結果為1,刪除了一個key
res = conn_redis.delete('a')
#刪除不存在的key,返回結果為0,沒有刪除key
res1 = conn_redis.delete('d')
#刪除多個key,返回結果n, 刪除了幾個key就返回數字幾
asdf = conn_redis.delete('a', 'b', 'c')
print(asdf)
          

key的類型是hash,進行set操作,模式:{key,{key1,value}}如下

            
import redis
db = 0
#連接redis,password不簡寫(否則或報錯),db若不寫,則默認操作db0
conn_redis = redis.Redis(host='192.168.3.66', port=6379, password='123456', db=db)
#hash類型的key,模式{name,{key,value}},里面key不能重復,返回值為int
res = conn_redis.hset('user_session', 'lhl', 'sunny')
#hash類型的key,添加值時也可以設置文件夾
conn_redis.hset('session:redis_test', 'age', 18)
          

key的類型是hash,進行get操作,如下

            
import redis
db = 0
#連接redis,password不簡寫(否則或報錯),db若不寫,則默認操作db0
conn_redis = redis.Redis(host='192.168.3.66', port=6379, password='123456', db=db)
#獲取hash類型中的某個name下的某個key對應的value ,獲取指定name里面的key的值,返回結果類似是bytes
res = conn_redis.hget('user_session', 'week')
#獲取hash類型中name里面所有的key,返回結果是字典>>>>>輸出:{b'test': b'sunny', b'week': b'sunny'}
all = conn_redis.hgetall('user_session')
          

key的類型是hash,進行delete操作,如下

            
import redis
db = 0
#連接redis,password不簡寫(否則或報錯),db若不寫,則默認操作db0
conn_redis = redis.Redis(host='192.168.3.66', port=6379, password='123456', db=db)
#hash類型的key,刪除整個key, delete(name),返回結果為1
res = conn_redis.delete('user_session')
#hash類型的key,刪除指定name里的key,若刪除的key或者name不存在,則返回0
res = conn_redis.hdel('user_session', 'week')
          

redis的set、get公共操作方法如下

            
def opRedis(host, password, key, value=None, port=6379,db=0):   #redis操作時需要傳入key\value
  conn_redis = redis.Redis(host=host, password=password, port=port, db=db)  #獲取redis連接
  if value:              #判斷value是否傳值,如果不為None,則是set
    conn_redis.setex(key, value, 60)  #設置key的過期時間,60s
    res = 88
  else:
    res = conn_redis.get(key).decode()   #將從redis內讀取的值,由bytes轉換為字符串
  return res
          

以上這篇python筆記:mysql、redis操作方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 亚洲入口 | 欧美一区二区三区免费不卡 | 成人日韩在线 | 好吊色欧美一区二区三区四区 | 全免费午夜一级毛片一级毛 | 免费一级毛片麻豆精品 | 精品欧美乱码久久久久久 | 欧美日韩三级 | 亚洲国产精品一区二区第一页 | 免费大香伊蕉在人线国产 | 爱爱爱av| 欧美精品无需播放器在线观看 | 久久精品国产999大香线焦 | 亚洲 欧美日韩 国产 中文 | av免费在线观看国产 | 国产精品久久福利新婚之夜 | 亚洲视频在线视频 | 免费观看一级特黄欧美大片 | 国产成人综合网在线观看 | 欧美黄 片免费观看 | 亚洲精品久久AV无码蜜桃 | 国产视频导航 | 欧美大片在线播放 | 亚洲久草 | 久草免费在线视频 | 日本一本久道 | 午夜精品视频 | 午夜影院18 | 久久五月天婷婷 | 久久久精品一区二区三区 | 十六以下岁女子毛片免费 | 亚洲一区播放 | 欧美国产日韩在线 | 亚洲精品99| 91看片淫黄大片欧美看国产片 | 亚洲一区二区三区中文字幕 | 亚洲视频在线播放 | 黄视频网站免费看 | 国产婷婷| av电影直播 | 国产91精品久久久久久久 |