day7 操作excel 操作redis 简单的接口开发

操作excel:

读excel:xlrd  安装命令 pip install xlrd

import xlrd
book = xlrd.open_workbook('app_student.xls') #打开一个excel
sheet = book.sheet_by_index(0) #获取第一个sheet页
# sheet2 = book.sheet_by_name('shee1')
# print(sheet.cell(0,0).value) #指定sheet页里面行和lie获取数据
# print(sheet.cell(1,0).value) #指定sheet页里面行和lie获取数据
# print(sheet.row_values(0)) #这个获取到第几行的内容
# print(sheet.row_values(1)) #这个获取到第几行的内容
# print(sheet.nrows) #获取到excel里面总共有多少行
# for i in range(sheet.nrows):  #循环获取到每行数据
#     print(sheet.row_values(i))
print(sheet.ncols)  #总共多少列
print(sheet.col_values(0)) #取第几列的数据

修改excel

import xlrd
from xlutils import copy
book = xlrd.open_workbook('app_student.xls')
#先用xlrd模块,打开一个excel
new_book = copy.copy(book) #
#通过xlutils这个模块里面copy方法,复制一份excel
sheet = new_book.get_sheet(0) #获取sheet页
lis = ['编号','名字','性别','年龄','地址','班级','手机号','金币']
for col,filed in enumerate(lis):
    sheet.write(0,col,filed)    #因为是换表头,第一行, 0

new_book.save('app_student.xls')

通用从mysql导出数据到excel

import pymysql,xlwt
def export_excel(table_name):
    host, user, passwd, db = 'xxx.xx.xx.xx', 'xxx', '123456', 'xxx'
    coon = pymysql.connect(user=user, host=host, port=3306, passwd=passwd, db=db, charset='utf8')
    cur = coon.cursor()  # 建立游标,指定cursor类型返回的是字典
    sql = 'select * from %s ;'%table_name
    cur.execute(sql)  # 执行sql
    fileds = [filed[0] for filed in cur.description]  #所有的字段
    print(fileds)
    all_data = cur.fetchall()
    book = xlwt.Workbook()
    sheet  = book.add_sheet('sheet1')
    for col,filed in enumerate(fileds):   #写表头的
        sheet.write(0,col,filed)
    row = 1  #行数
    for data in all_data:  #
        for col, filed in enumerate(data):  # 控制列 enumerate可以自动获取下标
            sheet.write(row, col, filed)
        row+=1#每次写完一行,行就加1
#     book.save('%s.xls'%table_name)
export_excel('app_student')

enumerate 的用法

enumerate([list,list2])  #循环的时候,直接获取到下标,和值
for index,value in enumerate([list,list2]):
print(index,vlaue)
===============================================================================================================================
操作redis
安装命令:pip install redis
redis也是一个数据库。
关系型数据库
mysql、oracle、sql server、db2、sqlite
sql
数据存在磁盘上
非关系型数据库
没有
sql
get('k')
set('xx')
mongodb、redis

redis数据全部都是存在内存里面。
redis本身性能是非常好的,每秒支持30w次的读写。
连接redis
import redis
r = redis.Redis(host='xxx.xx.x.xx',password='xxxxx',db=1,port=6379)

 redis操作

#增删改查
# r.set('niuhanyang','帅!') #数据库里面新增一个值
#修改也是set
# r.delete('niuhanyang')
#r.setex('python_123','哈哈哈',20)  #设置key的失效时间,最后这个参数是秒
# hwt = r.get('hwt')
# print(hwt.decode())
# print(r.keys('*xxx*'))#获取到所有的key
# print(r.get('sdfsdf'))
# r.set('天蝎座:mpp','呵呵呵')
# r.get('天蝎座:mpp')

# 上面操作都是针对 string类型
# for k in r.keys():  #删除所有的key
#     r.delete(k)

# 哈希类型  hash   嵌套字典
# r.hset('stu_info','刘伟','1m8 100w存款')
# r.hset('stu_info','张流量','浪,为了不交作业,故意让狗咬他')
# r.hset('stu_info','董春光','为了不交作业,找了一条狗咬张流量,然后陪张流量去医院')
# print(r.hget('stu_info','张流量').decode())  #指定大key和小key获取对应的数据
# print(r.hgetall('stu_info'))  #获取里面所有的k和-v
# stu_info  = r.hgetall('stu_info')
# r.hdel('stu_info','gyx')  #删除指定key
# r.delete('stu_info')  #删除整个key

r.expire('aaa',100) #第一个key设置失效时间
 

接口开发

import flask,json
# __name__,代表当前这个python文件
server = flask.Flask(__name__) #把当前这个python文件,当做一个服务
def my_db(sql):
    import pymysql
    coon = pymysql.connect(
        host='xxx.xx.x.xx', user='xxx', passwd='xxxxx',
        port=3306, db='jxz', charset='utf8')
    cur = coon.cursor() #建立游标
    cur.execute(sql)#执行sql
    if sql.strip()[:6].upper()=='SELECT':
        res =  cur.fetchall()
    else:
        coon.commit()
        res = 'ok'
    cur.close()
    coon.close()
    return res


@server.route('/index',methods=['get'])
def index():
    res = {'msg':'这是我开发的第一个接口','msg_code':0}
    return json.dumps(res,ensure_ascii=False)

@server.route('/reg',methods=['post'])
def reg():
    username = flask.request.values.get('username')#
    pwd = flask.request.values.get('passwd')
    print('username..',username)
    if username and pwd:
        sql = 'select * from my_user where username="%s";'%username
        # res = my_db(sql)
        if my_db(sql):
            res = {'msg':'用户已存在','msg_code':2001}
        else:
            insert_sql = 'insert into my_user (username,passwd,is_admin) values ("%s","%s",0);'%(username,pwd)
            my_db(insert_sql)
            res = {'msg':'注册成功!','msg_code':0}
    else:
        res = {'msg':'必填字段未填,请查看接口文档!','msg_code':1001}
        # 1001必填字段未填
    return json.dumps(res,ensure_ascii=False)

server.run(port=7777,debug=True,host='0.0.0.0')  #debug=True,改了代码之后,不用重启它会自动帮你重启
# host=0.0.0.0表示别人访问的时候,用你的ip就可以访问了。
# 127.0.0.1
# 192.168.
#脚本


猜你喜欢

转载自www.cnblogs.com/bzdfxx/p/9024154.html
今日推荐