zoukankan      html  css  js  c++  java
  • Python自动化学习笔记(七)——import、操作redis、操作Excel、接口开发

    1.import

    导入模块流程、导入的模块的实质
      1、import xx:import 一个模块的实质就是把这个python文件从头到尾执行一遍

      2、import模块的查找模块的顺序

    •     从当前目录下找
    •     sys.path

    从上面2个目录都找不到,那就报错
      3、如果想import一个py文件,有三种方法:

    •     将文件拷贝到当前文件夹
    •     将文件拷贝到sys.path中任意一个路径下
    •     将文件拷贝到pycharm中一个文件夹,并将该文件设置为Sourses Root

    2.操作redis

    redis是非关系型数据库,数据用key-value的形式存储,不需要通过sql语句来查询数据

    2.1 连接redis

      import redis

      r=redis.Redis(host=ip,password=password,port=6379,db=3,decode_responses=True) #连接redis #decode_responses=True,返回str,不加返回bytes类型

    2.2 String类型数据的增删改查

    1.查询:

    • r.get('lyc_session') #传入一个key,获取value,连接时如果加了decode_responses=True,返回str,不加返回bytes类型


    2.新增/修改:

    • r.set('lyc_session',"'aaaaadfdgaaa':'哈哈哈'",100) #第一个参数是key,第二个参数是value,第三个参数是过期时间,不加就重启服务器才会失效

    3.删除:

    • r.delete('lyc_session')      #参数是key,key不存在不会报错

    2.3 hash类型

    1.查询:

    • r.hget('sms_code','177') #获取值,{"a":11111,"b":46464}
    • r.hkeys('sms_code') #获取到这个key里所有内部key,返回一个list
    • r.hgetall('sms_code') #获取这个key里所有的内容,key:value形式

    2.新增/修改

    • r.hset('sms_code','1134111','11111')

    3.删除

    •  r.hdel('key1','key2')   #删除指定的key,key1下的key2的内容
    •  r.delete('key') #删除整个key,和string类型的使用一样

    2.4 其他方法

    • r.type('key') #获取数据类型,传入一个key
    • r.flushall() #清空所有数据库里的数据
    • r.flushdb() #清空当前数据库里的数据
    •  keys=r.keys() #获取所有的key,返回一个list
    •  keys=r.keys('*lyc*') #模糊匹配
    • r.expire('key',10) #设置过期时间

    2.5 一个练习

    把redis数据库3的数据迁移到数据库4

    import redis
    
    ip='xxxx'
    password='xxx'
    r1=redis.Redis(host=ip,password=password,port=6379,db=3,decode_responses=True)    #连接redis  ,返回str
    r2=redis.Redis(host=ip,password=password,port=6378,db=4,decode_responses=True)    #连接redis  #decode_responses=True,返回str,不加返回bytes类型
    keys=r1.keys()
    for key in keys:
        res=r1.type(key)
        if res=='hash':
            hash_data=r1.hgetall(key)
            for k,v in hash_data.items():
                r2.hset(key,k,v)
        else:
            value = r1.get(key)
            r2.set(key, value)

    3.操作Excel

    3.1 写Excel

    import xlwt

    book=xlwt.Workbook()#新建一个excel

    sheet=book.add_sheet('sheet1') #添加一个sheet页

    sheet.write(row,col,value)  #在第row行,第col列的位置,插入value值

    book.save('filename.xls')      #保存到filename这个文件,wps:xls,xlsx 微软:xls

    3.2读Excel

    import xlrd


    book=xlrd.open_workbook('stu.xls')
    sheet=book.sheet_by_index(0) #获取一张表
    print(sheet.cell(0,0).value) #获取指定单元格的内容
    print(sheet.row_values(0)) #获取整行的数据
    print(sheet.col_values(0)) #获取整列的数据
    print(sheet.nrows)        #获取行数
    print(sheet.ncols)        #获取列数

    for row in range(0,sheet.nrows): #获取所有数据
      print(sheet.row_values(row))

    3.3修改Excel

    import xlrd
    from xlutils import copy

    book=xlrd.open_workbook('stu.xls')
    new_book=copy.copy(book)    #得到一个新的book
    sheet=new_book.get_sheet(0) #修改excel时候,只能用get_sheet()方法
    sheet.write(0,0,'id')        #用write修改,传入行、列、值
    new_book.save('stu1.xls')     #保存修改后的文件,原文件不变

    4.接口开发

    import flask
    import tools
    import json
    server=flask.Flask(__name__)
    #新建一个服务,把当前python文件当作一个服务
    @server.route('/login',methods=['get'])     #装饰器,在服务里添加一个接口
    def hello():
        username=flask.request.values.get('username').upper()#获取参数
        pd=flask.request.values.get('password')
        sql='select * from app_myuser where username="%s"'%username     
        res=tools.my_db(sql)
        if res:
            if tools.my_md5(pd)==res.get('passwd'):
                res={'code':0,'msg':'登录成功'}
            else:
                res={'code':1,'msg':'密码错误'}
        else:
            res = {'code': 2, 'msg': '用户不存在'}
        return json.dumps(res, ensure_ascii=False)
    
    
    #访问形式 ip:port/login
    
    server.run(host='0.0.0.0',port=11134,debug=True)
    #启动服务,指定host='0.0.0.0',监听本机所有ip,局域网内的计算机才能访问
    #debug=True,修改代码后自动重新加载
  • 相关阅读:
    微信公众号支付java版本
    js数组去重
    原生js关闭窗口
    javascript常用代码片段
    kubeadm 生成的token过期后,集群增加节点
    Git 配置命令设置
    SpringBoot cookie工具类
    Docker中的Cgroup Driver:Cgroupfs 与 Systemd
    使用kubeadm 安装 kubernetes 1.12.0
    IPVS负载均衡
  • 原文地址:https://www.cnblogs.com/luoyc/p/10148640.html
Copyright © 2011-2022 走看看