博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python访问mysql和redis
阅读量:4961 次
发布时间:2019-06-12

本文共 3463 字,大约阅读时间需要 11 分钟。

1. 修改mysql配置文件

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

mysql配置.jpg

mysql配置2.jpg

2. 修改redis配置文件

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

redis.jpg

redis1.jpg

Redis2.jpg

3. 下载访问包pymysqlredis

python包.jpg

4. 设置端口转发mysqlredis

端口转发.jpg

5. 导入包pymysql连接mysql
import pymysqlmysql_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_schemasys
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 redisimport sysimport time# 得到默认编码print(sys.getdefaultencoding())# 连接redisre = 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())# 设置过期时间为3sre.set('name','祖国',ex=3)time.sleep(3)#打印过期后ttlprint(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'))# 删除序列的值cre.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终端输出中文

redis连接.jpg

转载于:https://www.cnblogs.com/xiao-apple36/articles/8383718.html

你可能感兴趣的文章
[Locked] Wiggle Sort
查看>>
deque
查看>>
Setting up a Passive FTP Server in Windows Azure VM(ReplyCode: 227, Entering Passive Mode )
查看>>
Python模块调用
查看>>
委托的调用
查看>>
c#中从string数组转换到int数组
查看>>
数据模型(LP32 ILP32 LP64 LLP64 ILP64 )
查看>>
java小技巧
查看>>
POJ 3204 Ikki's Story I - Road Reconstruction
查看>>
【BZOJ】2959: 长跑(lct+缩点)(暂时弃坑)
查看>>
iOS 加载图片选择imageNamed 方法还是 imageWithContentsOfFile?
查看>>
toad for oracle中文显示乱码
查看>>
SQL中Group By的使用
查看>>
错误org/aopalliance/intercept/MethodInterceptor解决方法
查看>>
Pylint在项目中的使用
查看>>
使用nginx做反向代理和负载均衡效果图
查看>>
access remote libvirtd
查看>>
(4) Orchard 开发之 Page 的信息存在哪?
查看>>
ASP.NET中 GridView(网格视图)的使用前台绑定
查看>>
深入了解Oracle ASM(二):ASM File number 1 文件目录
查看>>