zoukankan      html  css  js  c++  java
  • python数据库操作

    import datetime, pymysql

    # print(datetime.datetime.today()) # 当前时间至秒
    # print(datetime.datetime.now()) # 当前时间,与today一致
    # print(datetime.datetime.today().strftime('%Y%m%d')) # 格式化时间
    # print((datetime.datetime.today() + datetime.timedelta(3)).strftime('%Y%m%d')) # 取3天后日期
    # print(datetime.datetime.today() + datetime.timedelta(-3)) # 取3天前日期
    # print(datetime.date.today()) # 取当天日期至日

    # 1.连接Myasql(IP,端口,用户,密码,数据库)
    # 2.建立游标
    # 3.执行sql
    # 4.获取结果
    # 5.关闭连接,关闭游标
    sql = "INSERT INTO `bt_stu` ( `real_name`, `sex`, `phone`, `class`, `type`) VALUES ( 'zfb', '1', '18928430520', '999', '1');"
    sql1 = 'select * from bt_stu;'
    conn = pymysql.connect(host='211.149.218.16',
    user='jxz', passwd='123456',
    port=3306, db='jxz', charset='utf8') # port必须写int类型,charset必须写utf8
    # cur = conn.cursor() # 建立游标,类似文件指针
    cur = conn.cursor(cursor=pymysql.cursors.DictCursor) # 指定游标类型为字典
    cur.execute(sql1) # 执行sql语句
    res = cur.fetchall() # 获取sql执行结果,fetchall以元组返回所有数据,每一条数据也是元组(二维元组)
    # res = cur.fetchone() #只获取一条结果(一维元组),一次之获取一条记录,重复执行按顺序获取之后每一条记录
    # cur.scroll(0,mode='absolute')#移动游标到最前面
    # cur.scroll(-1,mode='relative')#移动游标,相对当前位置
    conn.commit()
    cur.close() # 关闭游标
    conn.close() # 关闭连接
    print(res)
    import redis

    # redis string操作k -v
    r = redis.Redis(host='211.149.218.16', port=6379, password='123456', db=2) # 连接数据库
    r.set('zfb', '666666') # set数据
    print(r.get('zfb').decode()) # 获取数据,取出的数据都是bytes类型,都要用.decode方法转成字符串
    r.delete('zfb')#删除
    r.setex('zfb','hhhh',10)#set数据,并设置过期自动清除时间10S,

    # redis hash类型操作,没有过期时间
    r.hset('sessions', 'zfb', '123456') # set数据
    print(r.hget('sessions', 'zfb').decode()) # 获取数据
    redis_date = r.hgetall('sessions')#获取hash类型中所有数据
    all_date = {}
    for k,v in redis_date.items():#把hash类型里面所有的数据转成字典
    k = k.decode()
    v = v.decode()
    all_date[k] = v

    # 有层级的添加k - v
    r.set('txz:homework:hhh', 'aaa')
    print(r.keys()) # 获取所有的key数据
    print(r.keys('txz*')) # 获取以txz开头的所有的key数据
    print(r.type('sessions')) # 获取key数据类型

    # redis数据迁移
    src_redis = redis.Redis(host='211.149.218.16', port=6379, password='123456', db=2)
    target_redis = redis.Redis(host='211.149.218.16', port=6379, password='123456', db=14)
    for key in src_redis.keys():
    if src_redis.type(key).decode() == 'string': # 判断Key的类型,redis数据获取的都是二进制,需要转换
    v = src_redis.get(key)
    target_redis.set(key, v)
    else:
    all_hash_date = src_redis.hgetall(key)
    for k, v in all_hash_date.items(): # hash类型获取的为字典,需要循环取值
    target_redis.hset(key, k, v) # Key为外面的key,k,v为hash类型的key和value
  • 相关阅读:
    软件评价——360安全卫士
    对于软件工程课程的疑问
    附加作业
    个人最终总结
    结对编程 电梯调度程序
    读程序作业
    VS2015 单元测试
    VS2015 的安装过程
    四则运算程序
    对于软件的点评
  • 原文地址:https://www.cnblogs.com/zhufb/p/8331315.html
Copyright © 2011-2022 走看看