levels of contents

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

 

posted @ 2018-12-20 16:29  非文艺女青年  阅读(474)  评论(0编辑  收藏  举报
levels of contents