zoukankan      html  css  js  c++  java
  • 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. 下载访问包pymysql和redis

    python包.jpg

    4. 设置端口转发mysql和redis

    端口转发.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
    

    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'))
       # 插入多条(元祖形式)
       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
    <class 'bytes'>
    15
    祖国
    None
    [b'xe4xbdxb3xe8x83xbd', b'18']
    b'19'
    b'29'
    {b'name': b'jianeng', b'pwd': b'123', b'age': b'18'}
    

    redis终端输出中文
    redis连接.jpg

  • 相关阅读:
    2014年寒假学习规划
    二十进制数的加法--【英雄会】
    使用IBM SVC构建vSphere存储间集群
    游戏服务器学习笔记 2———— 准备工作
    php判断正常访问和外部访问
    游戏服务器学习笔记 3———— firefly 的代码结构,逻辑
    数学基础知识 ——(1)高等数学
    动态内存与智能指针
    Numpy(4)—— 保存和导入文件
    Numpy(3)—— 线性代数相关函数
  • 原文地址:https://www.cnblogs.com/xiao-apple36/p/8383760.html
Copyright © 2011-2022 走看看