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,修改代码后自动重新加载