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,修改代码后自动重新加载
  • 相关阅读:
    基本MVVM 和 ICommand用法举例(转)
    WPF C# 命令的运行机制
    628. Maximum Product of Three Numbers
    605. Can Place Flowers
    581. Shortest Unsorted Continuous Subarray
    152. Maximum Product Subarray
    216. Combination Sum III
    448. Find All Numbers Disappeared in an Array
    268. Missing Number
    414. Third Maximum Number
  • 原文地址:https://www.cnblogs.com/luoyc/p/10148640.html
Copyright © 2011-2022 走看看