最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python筆記:mysql、redis操作方法

 更新時間:2017年06月28日 09:27:00   投稿:jingxian  
下面小編就為大家?guī)硪黄猵ython筆記:mysql、redis操作方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

模塊安裝:

數(shù)據(jù)操作用到的模塊pymysql,需要通過pip install pymysql進(jìn)行安裝。

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

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

mysql操作方法如下:

查詢數(shù)據(jù):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')
#創(chuàng)建游標(biāo)
cur = conn.cursor(cursor=pymysql.cursors.DictCursor) #指定cursor的類型為字典,返回結(jié)果類型是字典,不再是元組
#執(zhí)行sql,返回值是int,查詢出來的結(jié)果有幾條
cur.execute('select * from test')
#獲取第一條數(shù)據(jù),游標(biāo)cur所在的位置為1,游標(biāo)從0開始,查詢結(jié)果類型為:字典
row_1 = cur.fetchone()
cur.scroll(0, mode='absolute')  #將游標(biāo)移動到初始位置
#獲取前n行數(shù)據(jù)
row_2 = cur.fetchmany(n)
cur.scroll(0, mode='absolute')  #將游標(biāo)移動到初始位置
#獲取所有數(shù)據(jù),返回結(jié)果類型是:list,里面元素是字典
row_3 = cur.fetchall()
cur.scroll(0, mode='absolute')  #將游標(biāo)移動到初始位置
print(row_2)
#關(guān)閉游標(biāo)
cur.close()
#關(guān)閉連接
conn.close()

增加、更新、刪除數(shù)據(jù)

import pymysql
#建立mysql連接
conn = pymysql.connect(host='127.0.0.1', user='root', passwd='123456', db='szz', port=3306, charset='utf8')
#創(chuàng)建游標(biāo)
cur = conn.cursor(cursor=pymysql.cursors.DictCursor) #指定cursor的類型為字典,返回結(jié)果類型是字典,不再是元組
#執(zhí)行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語句需要進(jìn)行commit,否則無法保證修改或者新建的數(shù)據(jù)
conn.commit()
#關(guān)閉游標(biāo)
cur.close()
#關(guān)閉連接
conn.close()

cursor的相對、絕對位置移動

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

row_1 = cur.fetchone()       # 此時游標(biāo)的位置在1,數(shù)據(jù)庫取值從0下標(biāo)開始,獲取數(shù)據(jù)庫第一條數(shù)據(jù)
cur.scroll(2, mode='absolute')   #absolute絕對位置,直接是將游標(biāo)從0位置移動到指定的位置2
row_2 = cur.fetchone()       #讀取數(shù)據(jù)庫第3條數(shù)據(jù),游標(biāo)在3位置
cur.scroll(2, mode='relative')   #relative相對位置,相對于游標(biāo)當(dāng)前所在位置,進(jìn)行移動,移動1位,游標(biāo)在4位置,若相對移動的位置超過下標(biāo),則報out of range
row_3 = cur.fetchone()       #讀取第5條數(shù)據(jù)
#關(guān)閉游標(biāo)
cur.close()
#關(guān)閉連接
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)    #建立游標(biāo)并指定游標(biāo)類型
  cur.execute(sql)                      #執(zhí)行sql
  if sql.startswith('select'):                #判斷sql是否是select
    res = cur.fetchone()
  else:
    conn.commit()                      #insert\delete\update語句執(zhí)行完畢后需要進(jìn)行commit
    res = 88
  cur.close()                         #關(guān)閉游標(biāo)
  conn.close()                        #關(guān)閉連接
  return res

redis操作方法如下:

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

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

#set key值到redis內(nèi),且可以設(shè)置過期時間,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') 
#設(shè)置key時,可以設(shè)置文件夾,user文件夾,key:test,value:haha
conn_redis.set('user:test','haha')

獲取redis內(nèi)的數(shù)據(jù),通過key值進(jìn)行獲取

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

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

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

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

刪除redis內(nèi)的值,通過key刪除

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

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

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

key的類型是hash,進(jìn)行g(shù)et操作,如下

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

key的類型是hash,進(jìn)行delete操作,如下

import redis
db = 0
#連接redis,password不簡寫(否則或報錯),db若不寫,則默認(rèn)操作db0
conn_redis = redis.Redis(host='192.168.3.66', port=6379, password='123456', db=db)
#hash類型的key,刪除整個key, delete(name),返回結(jié)果為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)  #設(shè)置key的過期時間,60s
    res = 88
  else:
    res = conn_redis.get(key).decode()   #將從redis內(nèi)讀取的值,由bytes轉(zhuǎn)換為字符串
  return res

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

相關(guān)文章

  • 3段Python圖像處理的實用代碼的分享

    3段Python圖像處理的實用代碼的分享

    這篇文章主要介紹了3段Python圖像處理的實用代碼的分享,計算機(jī)視覺方向的Python實用代碼,用到多種庫具有一定的參考價值,需要的小伙伴可以參考一下
    2022-06-06
  • Python算法中的時間復(fù)雜度問題

    Python算法中的時間復(fù)雜度問題

    時間復(fù)雜度用于度量算法的計算工作量,空間復(fù)雜度用于度量算法占用的內(nèi)存空間。這篇文章主要介紹了Python算法中的時間復(fù)雜度,需要的朋友可以參考下
    2019-11-11
  • python 的集合類型詳解

    python 的集合類型詳解

    這篇文章主要為大家介紹了python的集合類型,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-12-12
  • Django緩存系統(tǒng)實現(xiàn)過程解析

    Django緩存系統(tǒng)實現(xiàn)過程解析

    這篇文章主要介紹了Django緩存系統(tǒng)實現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-08-08
  • python語言開發(fā)垃圾回收機(jī)制原理教程

    python語言開發(fā)垃圾回收機(jī)制原理教程

    這篇文章主要為大家介紹了python語言開發(fā)垃圾回收機(jī)制原理的教程有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2021-11-11
  • python運(yùn)算符號詳細(xì)介紹

    python運(yùn)算符號詳細(xì)介紹

    大家好,本篇文章主要講的是python運(yùn)算符號詳細(xì)介紹,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • TensorFlow繪制loss/accuracy曲線的實例

    TensorFlow繪制loss/accuracy曲線的實例

    今天小編就為大家分享一篇TensorFlow繪制loss/accuracy曲線的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • 如何使用python數(shù)據(jù)處理解決數(shù)據(jù)沖突和樣本的選取

    如何使用python數(shù)據(jù)處理解決數(shù)據(jù)沖突和樣本的選取

    這篇文章主要介紹了如何使用python數(shù)據(jù)處理解決數(shù)據(jù)沖突和樣本的選取,其中主要包括 實際業(yè)務(wù)數(shù)據(jù)沖突、樣本選取問題、數(shù)據(jù)共線性等思路
    2021-08-08
  • PyTorch?模型?onnx?文件導(dǎo)出及調(diào)用詳情

    PyTorch?模型?onnx?文件導(dǎo)出及調(diào)用詳情

    這篇文章主要介紹了PyTorch模型onnx文件導(dǎo)出及調(diào)用詳情,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-07-07
  • 用pyqt5 給按鈕設(shè)置圖標(biāo)和css樣式的方法

    用pyqt5 給按鈕設(shè)置圖標(biāo)和css樣式的方法

    今天小編就為大家分享一篇用pyqt5 給按鈕設(shè)置圖標(biāo)和css樣式的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-06-06

最新評論

四子王旗| 会宁县| 郎溪县| 万全县| 桐庐县| 军事| 策勒县| 安新县| 调兵山市| 龙口市| 临沂市| 二连浩特市| 分宜县| 巴彦淖尔市| 深州市| 南投市| 汶川县| 霍林郭勒市| 出国| 丰都县| 通道| 新巴尔虎左旗| 华阴市| 柏乡县| 米林县| 恭城| 临夏县| 三门县| 中山市| 江华| 宁化县| 孝感市| 黔东| 台州市| 海宁市| 城市| 敦煌市| 崇州市| 吉林市| 青川县| 淮北市|