python -- 操做數據庫

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
相關文章
相關標籤/搜索