python3 mysql redis_python访问mysql和redis

1. 修改mysql配置文件

修改bind-address=0.0.0.0(允许通过远程网络连接)

6e75856ea22acd411956cd97e5b4131b.png

0ebfb3e63907d4b476252af33957b78d.png

2. 修改redis配置文件

修改bind-address=0.0.0.0(允许通过远程网络连接),设置密码qwe123

55da94545f260d9d301eabcaa4674674.png

73aec43b1c1f83a85904524c1229430c.png

e7c4501c95331b29641bad2d08b4b2e9.png

3. 下载访问包pymysql和redis

d3360c527894487f7316a207564f9910.png

4. 设置端口转发mysql和redis

0d6e4d6b5b74e7f8b0dd3a07513885bf.png

5. 导入包pymysql连接mysql

import pymysql

mysql_connect_dict={

'host':'127.0.0.1',

'port':3333,

'user':'jianeng',

'password':'qwe123',

'db':'info',

'charset':'utf8'

}

# 连接数据库

conn = pymysql.connect(**mysql_connect_dict)

# 指定以dict形式返回,默认以元祖形式

#conn = pymysql.connect(**mysql_connect_dict,cursorclass=pymysql.cursors.DictCursor)

print(conn)

6. 访问mysql

1. 查询记录

# 创建游标

cursor = conn.cursor()

# sql查询语句

sql = "show databases"

# 执行sql,得到行数

row = cursor.execute(sql);

print('%s条数据'%row)

# 返回一条记录(元祖形式)

one = cursor.fetchone();

print(one)

# 返回多条记录(元祖形式)

many = cursor.fetchmany(3)

print(many)

# 返回所有记录(元祖形式)

all = cursor.fetchall()

print(all)

#循环输出

for al in all:

print(*al)

打印结果

6条数据

('information_schema',)

(('info',), ('mydb',), ('mysql',))

(('performance_schema',), ('sys',))

#循环结果

performance_schema

sys

2. 删除、创建表

dr_table ='drop table `user`'

# 删除表

cursor.execute(dr_table)

cr_table ='''create table if not exists user(

id int primary key auto_increment,

username varchar(20) not null,

password varchar(20) not null

)

'''

# 创建表

cursor.execute(cr_table)

3. 插入记录

# 插入数据

insertsql ='insert into user (username, password) VALUES (%s,%s)'

cursor.execute(insertsql,('zhangsan','123'))

# 插入https://common.cnblogs.com/editor/tiny_mce/plugins/uploadImage/img/img.gif多条(元祖形式)

cursor.executemany(insertsql,[('王五','qwq'),('赵四','123'),('千8','123')])

# 提交数据

conn.commit();

# sql查询语句

selectsql = "select * from user "

# 执行sql,得到行数

row = cursor.execute(selectsql);

print('返回%s条数据'%row)

# 返回所有记录(元祖形式)

select_all = cursor.fetchall();

print("select=",select_all)

打印结果

#返回4条数据

select= ((1, 'zhangsan', '123'), (2, '王五', 'qwq'), (3, '赵四', '123'), (4, '千8', '123'))

4. 修改记录

# 更新数据

updatesql='update user set username = %s where id=%s'

cursor.execute(updatesql,('张三','2'))

# 更新多条(元祖形式)

l = []

for x in range(1, 4):

l.append(('李%s'%x,str(x)))

cursor.executemany(updatesql,l)

# 提交数据

conn.commit();

# 执行sql,得到行数

row = cursor.execute(selectsql);

print('返回%s条数据'%row)

# 返回所有记录(元祖形式)

select_all = cursor.fetchall();

print("select=",select_all)

打印结果

#返回4条数据

select= ((1, '李1', '123'), (2, '李2', 'qwq'), (3, '李3', '123'), (4, '千8', '123'))

5. 删除记录

# 删除语句

deletesql='delete from user where id=%s'

cursor.execute(deletesql, 1)

# 删除多条

cursor.executemany(deletesql,[(2,),(3,)])

# 提交数据

conn.commit()

打印结果

#返回1条数据

select= ((4, '千8', '123'),)

7. 访问redis

import redis

import sys

import time

# 得到默认编码

print(sys.getdefaultencoding())

# 连接redis

re = redis.Redis(host='127.0.0.1', password='qwe123',port=5555)

# 设置name值

re.set('name',15)

print(type(re.get('name')))#byte类型(utf8格式16进制字节码)

if isinstance(re.get('name'), bytes):

# 字节码转换为字符串

print(re.get('name').decode('utf8'))

re.set('name','祖国')

# decode默认为utf8格式解码

print(re.get('name').decode())

# 设置过期时间为3s

re.set('name','祖国',ex=3)

time.sleep(3)

#打印过期后ttl

print(re.ttl('name'))

# 设置多个属性

re.mset(name='佳能',age='18')

print(re.mget('name','age'))

# 设置递增

re.incr('age')

print(re.get('age'))

re.incr('age',10)

print(re.get('age'))

# 删除序列的值c

re.lrem('test_list','c',0)

# 设置hash 值

re.hmset('userkey',{'name':'jianeng','age':'18'})

print(re.hgetall('userkey'))

打印结果

utf-8

15

祖国

None

[b'\xe4\xbd\xb3\xe8\x83\xbd', b'18']

b'19'

b'29'

{b'name': b'jianeng', b'pwd': b'123', b'age': b'18'}

redis终端输出中文

8e17d5cc4a7083f6caddaacef540676d.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值