pymysql模块补充内容

1、 游标.description():显示表的字段属性

(什么是游标:游标用于交互式应用,就好比word里的光标一样,要修改某个地方,要先把光标移动到这里)

用好这个方法,可以获取到表中所有字段名

2、 游标.fetchone():只获取一行,游标自动移至下一行

3、 游标.fetchmany(n): 获取n行,游标自动下移

注意:除了select以外的sql,在execute之后,还要加上一句  连接.commit()

cur.execute("insert/delete/update......")

conn.commit()

xlrd模块

xlrd用来读excel,只能是xls格式,xlsx不能用这些模块

1、 打开工作簿: open_workbook()

2、 打开工作表: 工作簿. sheet_by_index(0)

3、 读取数据

工作表.cell(行号,列号).value获取单元格内容,注意行列都是从0开始计数

工作表.row_values(行号): 获取一行内容

工作表.nrows: 获取总行数

显示所有行内容:

工作表.col_values(列号): 获取一列内容

工作表.ncols: 获取总列数

显示所有列内容:

xlutils模块

用于修改excel文档,要注意不能直接对excel文档修改,要先将excel文档用xlrd打开,然后复制一份副本,对副本进行修改,最后保存覆盖原excel文档

注意:xlutils的导入很特殊,不能用import xlutils,必须用from xlutils import copy

1、 复制工作簿:copy.copy(工作簿) 首先要先用xlrd打开一个工作簿,然后才能复制

2、 打开工作表:工作簿.get_sheet(0)

3、 修改内容:工作表.write(行号,列号,内容)

redis模块

redis是一种非关系型数据库,不是二维表结构,不用sql,是键值结构,直接用get、set、操作数据库,注意:键不能重复,不能按照值来查询

1、 连接redis: redis.Redis(host,port,password,db) ,注意Redis大写

2、 执行操作:

redis数据类型有很多种,这里只讲string和hash两种常用的数据类型

连接.type(key): 查看key的类型

string类型:(键key,值value)

  连接.set(key,value): 添加数据

   

  如果key里有冒号,冒号前面部分会显示成文件夹

   

  

  连接.setex(key,value,ex): 添加数据,生效时间是ex秒

  

   

  连接.delete(key): 删除数据

   

  连接.get(key).decode(): 获取数据,查不到则返回None。注意:redis存的是byte类型,要用decode变成str类型

   

hash类型:(大键name,小键key,值value)

   连接.hset(name,key,value): 添加数据

   

  如果name里有冒号,冒号前面部分会显示成文件夹

  连接.get(name,key).decode(): 获取数据,查不到则返回None。注意:redis存的是byte类型,要用decode变成str类型

  连接.hgetall(name): 获取某大键的所有数据

  

  转换成str

   

  连接.hdel(name,key): 删除小键,大键保留。删大键的方法和string的删除是一样的

   

  连接.expire(name): 设置失效时间

   

  

  连接.ttl(name): 获取失效时间

   

连接.keys(): 获取所有key(包括string和hash数据类型)

筛选指定类型

筛选指定名称

flask模块

flask是用来做接口开发的,开发接口可以用来模拟未开发好的模块,做接口测试

1、新建服务: flask.Flask(__name__)  其中__name__代表当前文件,这行代码的意思是把当前文件当做一个服务

2、将普通代码变成服务:在函数前面增加一行@服务.route(路径,方法)  其中@是一个装饰器,用来扩展新功能

3、运行服务:服务.run(地址,端口) ,默认端口号是5000

4、在浏览器访问该路径

组织代码

Why:当代码短的时候,可以将代码都放在一个文件里。但是当代码很长的时候,都放在一个文件中就不方便查看和更改。需要把代码按逻辑分开,并加以组织,方便查看和更改。

How:有一套行业长年累积的习惯(仿照的unix系统目录)

  bin目录存放可执行文件(二进制binary的缩写,但其实放的并不是二进制文件,仍然是.py文件,习惯放启停服务、程序的文件)

  lib存放函数文件(库library的缩写,自己定义的函数习惯放在这个文件夹下)

  config存放配置文件(配置configuration的缩写,习惯存放地址、端口号等常量)

举个栗子:有一个比较长的接口.py文件,我们试着把它拆开

import flask,json,hashlib,redis
server=flask.Flask(__name__) #新建服务
@server.route('/index',methods=['get','post'])
def str2md5(str): #自己写的MD5摘要函数
   md = hashlib.md5()
   md.update(str.encode())
   return md.hexdigest()
def op_redis(k,v=None): #自己写的redis读写函数
    r = redis.Redis(host='xxxxxxxx',password='HK139bc&*',port=6379,db=1)#数据库地址和账号
    if v:
        r.set(k,v)
        res='ok'
    else:
        res = r.get(k).decode() if r.get(k) else None
    return  res
def login(): #接口主业务
    username=flask.request.values.get('username')
    pwd=flask.request.values.get('passwd')
    if op_redis(k=username)==str2md5(pwd): #密码要用MD5加密成密文
        res = {'login_info':'登录成功', 'error_code': 0}
    else:
        res = {'msg': '密码不正确', 'msg_code': '3001'}
    return json.dumps(res,ensure_ascii=False)
server.run(port=8989,debug=True) #启动接口服务

数据库地址、账号等参数,把它们放在一个文件中,称为setting,放在config文件夹下,使用这些常量的时候,直接调用from config.setting import 常量名

比较常用的自定义的函数,把它们都放到一个文件中,称为tools,放到lib文件夹下,使用这些函数的时候,直接调用from lib.tools import 函数名

**可以用来传字典格式的参数

接口功能,把它们放在interface文件中,放到lib文件夹下,使用的时候,调用from lib.interface import server

最后把启动服务这句,单放在一个文件中,称为start,放在bin文件夹下

注意,要把上级文件夹设置成Source Root,文件夹会变成浅蓝色,如下

到此,代码已全部拆分完毕,我们执行start这个文件,结果和拆分前是一致的

以后要改数据库地址,直接到config/setting中修改即可

要增加接口业务,直接到lib/interface中增加即可

以后写代码再需要用md5和redis,直接调用lib.tools就可以了

是不是很方便呢

Python基础-修改excel、redis、接口开发、组织代码的更多相关文章

  1. Python基础-修改excel中内容

    from xlutils.copy import copy import xlrd import os #1.打一要修改的excel #2.再打开另一个excel #3.把第一个excel里面修改东西 ...

  2. Python批量修改Excel中的文件内容

    import osimport xlrdfrom xlutils.copy import copydef base_dir(filename=None):    return os.path.join ...

  3. 基于Axis1.4的webservice接口开发(代码开发)

    基于Axis1.4的webservice接口开发(代码开发) 一.开发环境: 我的开发环境是MyEclipse 2015+Apache-Tomcat-8.0.21. 二.代码开发: 1.新建一个Web ...

  4. Python(七) —— mock接口开发

    mock接口开发 接口开发有很多框架,诸如 Django,flask,相比较而言,flask 是轻量级web开发框架,用来开发 mock 接口的不二之选.那你可能会问,什么叫 mock 接口呢?moc ...

  5. Python基础之面向对象的软件开发思路

    当我们来到生产环境中的时候,对一个软件需要开发的时候,刚开始也可能会懵逼,挝耳挠腮.不知从何下手,其 实,大家也不要苦恼,这是大多数程序员都会遇到的问题.那么,我们就要想一想了,既然大家都会这样,到低 ...

  6. python基础(29):网络编程(软件开发架构、网络基础、套接字初使用)

    1. 软件开发架构 我们了解的程序之间通讯的应用可分为两种: 第一种是应用类:qq.微信.百度网盘.腾讯视频这一类是属于需要安装的桌面应用. 第二种是web类:比如百度.知乎.博客园等使用浏览器访问就 ...

  7. Python+requests+unittest+excel实现接口自动化测试框架

    一.框架结构:  工程目录 二.Case文件设计 三.基础包 base 3.1 封装get/post请求(runmethon.py) import requests import json class ...

  8. Python+requests+unittest+excel实现接口自动化测试框架(摘录)

    一.框架结构:  工程目录 二.Case文件设计 三.基础包 base 3.1 封装get/post请求(runmethon.py) 1 import requests 2 import json 3 ...

  9. Python+requests+unittest+excel实现接口自动化测试框架(转

    一.框架结构:工程目录 二.Case文件设计三.基础包 base 3.1 封装get/post请求(runmethon.py) import requests import json class Ru ...

随机推荐

  1. Hbase启动hbase shell运行命令报Class path contains multiple SLF4J bindings.错误

    1:Hbase启动hbase shell运行命令报Class path contains multiple SLF4J bindings.错误,是因为jar包冲突了,所以对于和hadoop的jar包冲 ...

  2. virtualenv and virtualenvwrapper

    virtualenv 1.下载virtualenv工具 通过物理环境的pip工具安装  清华 国内 pip3 install -i https://pypi.tuna.tsinghua.edu.cn/ ...

  3. python之string模块常量:数字,26个字母,标点符号,空白

    In [8]: import string In [9]: dir(string) In [10]: string.ascii_letters Out[10]: 'abcdefghijklmnopqr ...

  4. 分布式一致性算法——paxos

    一.什么是paxos算法 Paxos 算法是分布式一致性算法用来解决一个分布式系统如何就某个值(决议)达成一致的问题. 人们在理解paxos算法是会遇到一些困境,那么接下来,我们带着以下几个问题来学习 ...

  5. Python_shutil模块

    import shutil 高级的文件,文件夹,压缩包的处理模块,也主要用于文件的拷贝 shutil.copyfileobj(fsrc,fdst[,length]): 将文件的内容拷贝到另一个文件(可 ...

  6. spark学习之路1--用IDEA编写第一个基于java的程序打包,放standalone集群,client和cluster模式上运行

    1,首先确保hadoop和spark已经运行.(如果是基于yarn,hdfs的需要启动hadoop,否则hadoop不需要启动). 2.打开idea,创建maven工程.编辑pom.xml文件.增加d ...

  7. BZOJ3944 Sum 数论 杜教筛

    原文链接http://www.cnblogs.com/zhouzhendong/p/8671759.html 题目传送门 - BZOJ3944 题意 多组数据(组数<=10). 每组数据一个正整 ...

  8. 011 pandas的常见操作

    一:对索引进行操作 1.reindex重新索引 pandas提供了一个方法来创建一个适应新索引的新对象. Series通过调用reindex方法会根据新的索引顺序重新排序,如果新的索引中存在原索引不存 ...

  9. vue源码的构建

    一.vue构建的基本了解 1,开始学习vue的源码的学习,vue.js是基于rollup构建的 它的配置在 scripts下面 rollup是webpack的简小版针对于js进行压缩的,没有提供复杂的 ...

  10. 【JavaScript】快速入门

    摘抄地址快速入门 No1: JavaScript严格区分大小写 No2: JavaScript不区分整数和浮点数,统一用Number表示 NaN表示Not a Number,当无法计算结果时用NaN表 ...