1.操做mysqlpython
python3操做mysql,須要導入第三方模塊【pymysql】,使用【pip install pymysql】便可安裝,python2中須要導入MySQLdb模塊,mysql
以python3爲例予以說明:redis
1 import pymysql 2 ip='192.168.10.65' 3 port=3306 4 passwd='root' 5 user='root' 6 db='test' 7 8 #創建數據庫鏈接 9 conn = pymysql.connect(host=ip,user=user,port=port,passwd=passwd,db=db 10 ,charset='utf8') 11 #創建遊標 12 cur= conn.cursor(cursor=pymysql.cursors.DictCursor) 13 sql = 'insert into nhy(id,name,sex) VALUE (5,"pjb","女");' 14 sql2 = 'select * from nhy;' 15 #執行sql 16 cur.execute(sql2) 17 #獲取全部數據 18 print(cur.fetchall()) 19 #獲取一行數據 20 print(cur.fetchone()) 21 #以絕對位置獲取數據 22 cur.scroll(5,mode='absolute') 23 #以相對位置獲取數據 24 cur.scroll(5,mode='relative') 25 #提交,insert、delete、update必須提交才能生效 26 conn.commit() 27 #關閉遊標 28 cur.close() 29 #關閉鏈接 30 conn.close()
如下是一個操做mysql數據庫的函數,記錄下,方便之後使用時直接取用sql
1 import pymysql 2 3 def op_mysql(host,user,passwd,db,sql,port=3306,charset='utf8'): 4 conn = pymysql.connect( 5 host=host,user=user,passwd=passwd,port=port,db=db,charset=charset 6 ) 7 cur = conn.cursor(pymysql.cursors.DictCursor) #以字典形式獲取數據 8 cur.execute(sql) 9 if sql.startswith('select'): 10 res = cur.fetchall() 11 else: 12 conn.commit() 13 res = 88 14 cur.close() 15 conn.close() 16 return res
2. 操做redis數據庫
redis是屬於nosql數據庫,即非關係型數據庫,數據都存放於內存中,可以很快速的讀寫session
python3操做redis數據庫, 須要安裝【redis】模塊,使用【pip install redis】安裝便可nosql
1 import redis 2 ip = '192.168.10.19' 3 port = 6379 4 db = 15 5 passwd = '123456' 6 #鏈接redis 7 r = redis.Redis(host=ip,port=port,db=db,password=passwd) 8 9 # set 是新增字符串類型,若新增的數據存在,則更新值 10 r.set('name',[1,2,3,4]) 11 #能夠設置key的失效時間 12 r.setex('a','111',30) 13 #批量設置值 14 r.mset(k1='v1',k2='v2') 15 16 #get查詢k的值,若key不存在就返回None 17 name = r.get('name') 18 print(r.get('name')) 19 # redis裏面獲取到的數據都是bytes類型的,須要是用.decode方法給它轉成字符串才能繼續操做 20 print(name.decode()) 21 #批量獲取key 22 print(r.mget('k1','k2')) 23 24 #刪除某個key 25 r.delete('name') 26 # 批量刪除 27 r.delete('k1', 'k2') 28 29 #操做哈希類型 30 r.hset('hname', 'key', 'value')#set 哈希類型的值 31 r.hsetnx('hname','key2','value23')#給name爲hname設置key和value,和上面的不一樣的是key不存在的時候纔會set 32 r.hmset('hname',{'k1':'v1','k2':'v2'})#批量設置哈希類型的key和value 33 r.hget('name', 'key')#獲取哈希類型的值 34 print(r.hgetall('hname'))#獲取這個name裏全部的key和value 35 r.hdel('hname','key')#刪除哈希類型的name裏面指定的值 36 print(r.keys())#獲取全部的key 37 38 #新建文件夾 39 r.set('user:niuhanyang','haha') #文件夾名user 40 r.hset('session:byz_sys','chendonggua','12345') #文件夾名session
如下是使用set方式的一個簡單的函數,記錄下,方便之後使用時直接取用函數
1 import redis 2 def op_redis(host,passwd,k,v=False,time=30,db=15,port=6379): 3 r = redis.Redis(host=host,password=passwd,db=db,port=port) 4 if v: 5 r.setex(k,v,time) 6 res = 88 7 else: 8 res = r.get(k) 9 if res: 10 res = res.decode() 11 else: 12 res = "" 13 return res