美文网首页
python访问mysql和redis数据库

python访问mysql和redis数据库

作者: 一只小小寄居蟹 | 来源:发表于2018-01-27 21:44 被阅读0次
    python访问mysql和redis
    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 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
    
    1. 删除、创建表
       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)
    
    1. 插入记录
       # 插入数据
       insertsql ='insert into user (username, password) VALUES (%s,%s)'
       cursor.execute(insertsql,('zhangsan','123'))
       # 插入多条(元祖形式)
       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'))
    
    1. 修改记录

      # 更新数据
      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'))
    
    1. 删除记录
    # 删除语句
    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
    <class 'bytes'>
    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

    相关文章

      网友评论

          本文标题:python访问mysql和redis数据库

          本文链接:https://www.haomeiwen.com/subject/bbeoaxtx.html