python操作数据库

一.python操作数据库

这里主要介绍python3的一些操作方法.以下介绍python操作两种数据库,两种数据库部分好坏,只是看当时哪一种更适合所开发的系统框架.

(一)python操作mysql数据库

mysql中的数据是存在磁盘中,相对于redis速度要慢些.

在python3中操作数据库,首先要安装pymysql,直接在命令行中敲pip3 install pymysql.

 1 import pymysql
 2 ip='211.149.147.233'
 3 port=3306
 4 passwd='111111'
 5 user='byz'
 6 db='byz'
 7 以下操作返回的是元组:
 8 conn=pymysql.connect(host=ip,user=user,port=port,passwd=passwd,db=db,charset='utf8')
 9 # 建立数据库连接,指定数据库的数据库的ip地址,账号、密码、端口号、要操作的数据库、字符集
10 cur=conn.cursor(cursor=pymysql.cursors.DictCursor)
11 # 在连接上建立一个游标
12 sql='insert into py(id,name,sex) VALUE(6,"panyang","nv");'
13 # sql语句,在表py中插入一条id=6,name=panyang,sex=nv的数据
14 # sql2='select * from py'
15 cur.execute(sql2)
16 # 执行一条数据库语句并返回受影响行数.查询结果是一个元组
17 
18 print(cur.fetchall())   #获取所有的数据,是一个元组
19 cur.scroll(0,mode='absolute')        # 移动游标
20 print(cur.fetchone())  #一次获取一条
21 conn.commit()   #要提交一下,inseert,update需要commit一下
22 cur.close()   #数据库连接了就要关闭,有连接就有关闭
23 conn.close()
24 
25 # 以下操作返回的是字典
26 import pymysql
27 conn = pymysql.connect(host='127.0.0.1', port=3306, user='root',
28                        passwd='123456', db='data', charset='utf8')
29 # 创建连接,指定数据库的ip地址,账号、密码、端口号、要操作的数据库、字符集
30 cursor = conn.cursor()
31 # 创建游标
32 cursor = coon.cursor(cursor=pymysql.cursors.DictCursor)
33 # 需要指定游标的类型,字典类型
34 cursor.execute("select * from user;")
35 # 执行SQL
36 # 获取返回结果,这个时候返回结果是一个字典
37 res = cursor.fetchone()
38 # 返回一条数据,如果结果是多条的话
39 print(res)
40 res2 = cursor.fetchall()  # 所有的数据一起返回

 

 

 

(二)python操作redis

 redis是nosql类型的数据库,数据存在内存中,读写速度较快.以下是redis中的一些操作:

 

 1 import redis,json
 2 ip='211.149.xxx.xx'
 3 port=6379
 4 db=7
 5 passwd=xxxxxx
 6 r=redis.Redis(host=ip,port=port,db=db,password=passwd)
 7 # 连接数据库
 8 # {"name:"panyang}
 9 r.set('myname','panyang')
10 # 往redis里面存键值对
11 # redis里面存的都是字符串
12 name=r.get('myname')
13 # redis里面获取到的诗句都是bytes类型的
14 print(name.decode())
15 # byte转成字符串.要使用.decode方法给他转成字符串才能继续操作
16 new_name=json.loads(name.decode())
17 #解码json格式
18 print(type(new_name))
19 
20 r.setex('panyang','hahaha','20')   #创建一个数据,20s中就没有了,有失效时间
21 # 可以设置key的失效时间
22 print(r.get('ahha'))   #如果get一个不存在的值就返回none
23 r.mset(panyang1='panyang1',panyang2='panyang2')
24 # 批量set值的时候使用
25 r.delete('name')   #删除某个key
26 r.delete('k1','k2')#批量删除
27 # print(r.keys('p*'))   #获取所有的key,byte类型,支持正则表达式
28 # 上面的key的类型是string类型
29 
30 # 以下是哈希类型的key
31 r.hset('user_session','panyang1','18')
32 r.hset('myname:panyangyang','panyang','hahahahahahaha')
33 # set哈希类型的值
34 # print(r.hget('user_session','panyang'))
35 # 获取指定的name里面的值
36 # print(r.hgetall('user_session'))
37 # 获取哈希类型里面所有的值
38 # r.delete('key')
39 # r.hdel('user_session','panyang')
40 # r.set('user:panyang','hahaha')

 

posted @ 2017-07-06 05:50  潘美丽  阅读(235)  评论(0编辑  收藏  举报