一、xlwt

xlwt是python第三方模块,主要是对excel的写操作。xlwt使用时必须先安装。

1、安装

在操作系统的cmd窗口输入pip install xlwt回车即可在线安装。

安装完成后,在写python使用时,需要引入 import xlwt

2、写excel

book = xlwt.Workbook() #新建一个excel
sheet = book.add_sheet('sheet1')#加sheet页
sheet.write(0,0,'姓名')#行、列、写入的内容
sheet.write(0,1,'年龄')
sheet.write(0,2,'性别')
book.save('user.xls')#结尾一定要用.xls

详细用法可参考

https://blog.csdn.net/Tulaimes/article/details/71172778

https://www.cnblogs.com/linyfeng/p/7123423.html

二、mysql连接

mysql的使用要安装pymysql模块。安装方法同样在cmd窗口输入pip install pymysql.使用的时候要引入import pymysql

mysql连接分几个步骤:

1、连接上数据库

2、创建游标、

3、执行sql

4、获取结果

5、关闭游标

6、关闭连接

示例:select语句

import pymysql
coon = pymysql.connect(
host='localhost',user='root',passwd='',
port=3306,db='shujuku',charset='utf8'
#port必须写int类型,
#charset这里必须写utf8
)
cur = coon.cursor() #建立游标
cur.execute('select * from user;')#执行sql语句
res = cur.fetchall() #获取所有返回的结果,返回类型是个嵌套元祖
cur.close()#关闭游标
coon.close()#关闭连接

select语句的使用如上。但是update\insert\delete语句操作有些不同,因为他们修改了数据库,所以在操作之后必须commit下

示例:

coon = pymysql.connect(
host='localhost',user='root',passwd='', #host根据要连接数据库的实际ip填写。
port=3306,db='shujuku',charset='utf8'
#port必须写int类型,
#charset这里必须写utf8
)
cur = coon.cursor() #建立游标
cur.execute('insert into user (id,name,passwd) VALUE (1,"aa","123456");')
#如果插入的数据值变量存储的话,可以这么写:cur.execute("insert into user(id,name,passwd' values ('%s','%s','%s');"%(id,username,passwd))
#其中%(id,username,passwd)必须写在双引号外边。如果写在里边就成了一个字符串了
)
coon.commit() # delete update insert都必须得coomit
cur.close()#关闭游标
coon.close()#关闭连接

mysql用游标默认用select查出来的表数据,返回的格式是两层元祖。如果想要对数据进行再次操作,就要对这个2层元组操作(('1','小红','123456'),('2','小明','123456'))

示例:将mysql数据库读出来的数据写入excel中

import pymysql,xlwt
def sql_to_excel(res):
# print(res)
book=xlwt.Workbook()
sheet=book.add_sheet('stu')
sheet.write(0, 0, '编号') # 行、列、写入的内容
sheet.write(0, 1, '姓名')
sheet.write(0, 2, '性别')
j=1#行
for tuple11 in res:#获取到内层元组
i = 0 # 列,每次都从第0列开始写
for t in tuple11:#从内层元组中获取元素,并循环写入每个元素到对应的行,列
sheet.write(j,i,t)
i=i+1
j=j+1
book.save('user.xls')
conn=pymysql.connect(host='localhost',user='root',passwd='',
port=3306,db='shujuku',charset='utf8')
cur=conn.cursor()
cur.execute('select * from user;')
res=cur.fetchall()
sql_to_excel(res)
cur.close()
conn.close()

如果想要从数据库查出来的数据返回格式为字典类型,则需要设置一下游标cursor的类型

cur = coon.cursor(cursor=pymysql.cursors.DictCursor) #建立游标,指定cursor类型返回的是字典。

cursor也可以对取出数据的条数进行限制

cur.fetchall()#获取查询结果的所有数据

cur.fetone()#获取查询结果的第一条数据

cur.fetmany(n)获取查询结果的n条数据

举例:

import pymysql
def my_db(sql,port=3306,charset='utf8'):
import pymysql
host, user, passwd, db = 'localhost','root','','stu' coon = pymysql.connect(user=user,host=host,port=port,passwd=passwd,db=db,charset=charset)
cur = coon.cursor(cursor=pymysql.cursors.DictCursor) #建立游标,指定cursor类型返回的是字典
cur.execute(sql)#执行sql
if sql.strip()[:6].upper()=='SELECT':
# res = cur.fetchall()#返回select语句查询结果的所有数据
# fileds = []
# for filed in cur.description:#cur.description获得的是表结构,二位元祖,可用此方法得到字段名:(('id', 3, None, 11, 11, 0, True), ('name', 253, None, 20, 20, 0, True)) ('sex', 253, None, 20, 20, 0, True))
# fileds.append(filed[0])
fileds = [ filed[0] for filed in cur.description ] #和上面3行代码的意思是一样
print(fileds) # cur.fetchmany(n) #能传入一个数,返回多少条数据 res= 'xx'
else:
coon.commit()
res = 'ok'
cur.close()
coon.close()
return res
res = my_db('select * from users_info limit 10;')
print(res)

三、hashlib

#加密,常见的加密方法md5,生成结果是固定的128 bit字节,通常用一个32位的16进制字符串表示.md5加密是不可解得

hashlib是内置模块,不需要安装,在使用时只需要引入import hashlib

import hashlib
m = hashlib.md5()
passwd = ''
m.update(passwd.encode()) #不能直接对字符串加密,要先把字符串转成bytes类型
print(m.hexdigest())

还有hashlib.sha512,hashlib.sha256等,加密后的字符串更长,更安全,但是相对来说也比较慢

python模块hashlib、xlwt、pymysql的更多相关文章

  1. python模块介绍- xlwt 创建xls文件(excel)

    python模块介绍- xlwt 创建xls文件(excel) 2013-06-24磁针石 #承接软件自动化实施与培训等gtalk:ouyangchongwu#gmail.comqq 37391319 ...

  2. Python模块——HashLib与base64

    摘要算法(hashlib) Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等. 什么是摘要算法呢?摘要算法又称哈希算法.散列算法.它通过一个函数,把任意长度的数据转换为一个长度 ...

  3. python模块: hashlib模块, configparse模块, logging模块,collections模块

    一. hashlib模块 Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等. 摘要算法又称哈希算法.散列算法.它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常用 ...

  4. Python模块——HashLib(摘要算法)与base64

    摘要算法(hashlib) Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等. 什么是摘要算法呢?摘要算法又称哈希算法.散列算法.它通过一个函数,把任意长度的数据转换为一个长度 ...

  5. Python模块hashlib

    Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等. 什么是摘要算法呢?摘要算法又称哈希算法.散列算法.它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常用16进制 ...

  6. python模块——hashlib模块(简单文件摘要算法实现)

    #!/usr/bin/env python # -*- coding:utf-8 -*- __author__ = "loki" # Usage: hashlib模块 import ...

  7. python模块hashlib & hmac

    Hash,译做“散列”,也有直接音译为“哈希”的.把任意长度的输入,通过某种hash算法,变换成固定长度的输出,该输出就是散列值,也称摘要值.该算法就是哈希函数,也称摘要函数. MD5是最常见的摘要算 ...

  8. Python模块——hashlib

    简介 hashlib模块是用于对字符串进行加密,其可以把任意长度的数据转换为一个长度固定的数据串,且这种加密是不可逆的,故这种加密方式的安全性都很高.hash本质是一个函数,该模块提供了许多不同的加密 ...

  9. python模块--hashlib

    用于加密相关的操作,3.x里代替了md5模块和sha模块,主要提供SHA1,SHA224,SHA256,SHA384,SHA512,MD5算法 import hashlib m = hashlib.m ...

随机推荐

  1. JAVA—继承及抽象类

    继承的概念 在Java中,类的继承是指在一个现有类的基础上去构建一个新的类,构建出来的新类被称作子类,现有类被称作父类,子类会自动拥有父类所有可继承的属性和方法. 与css中继承父元素属性类似 继承的 ...

  2. C#LeetCode刷题之#191-位1的个数(Number of 1 Bits)

    问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/4052 访问. 编写一个函数,输入是一个无符号整数,返回其二进制表 ...

  3. IDEA 非常重要的一些设置项 → 一连串的问题差点让我重新用回 Eclipse !

    开心一刻 建筑行业内,我看过的最凶残笑话(IT行业内好一致!) 上联:一天晚上两个甲方三更半夜四处催图只好周五加班到周六早上七点画好八点传完九点上床睡觉十分痛苦 下联:十点才过九分甲方八个短信七个电话 ...

  4. 为 Eureka 添加 Http Basic 认证

    简介 在网络世界中,任何网络中的服务都是不安全的,为了使我们的 Eureka 服务更加安全,我们可以添加各种各样的认证方式,以使客户端在提供相应的证明之后才能够注册到 Eureka 中.而这次我们就添 ...

  5. linux手动安装python

    前提:你的linux服务器必须有gcc编译器,gcc查看方法:linux命令行>gcc -v 如果返回版本信息证明已经安装, 如果找不到命令,跳到这篇手动安装gcc >>> l ...

  6. 虚拟化技术之kvm虚拟机创建工具virt-install

    在前边的博客中,我们创建KVM虚拟机用到了virt-manager,这个工具是一个图形化工具,创建虚拟机很方便:除此我们还是用virsh define/create +虚拟机配置文件来创建虚拟机,这种 ...

  7. 笔记:Ubuntu安装LAMP环境

    一.更换Ubuntu的镜像源 镜像源路径:/etc/apt/sources.list 备份:cp /etc/apt/sources.list /etc/apt/souces.list.bak 使用阿里 ...

  8. 数据结构与算法笔记(java)目录

    数据结构: 一个动态可视化数据结构的网站 线性结构 数组 动态数组 链表 单向链表 双向链表 单向循环链表 双向循环链表 栈 栈 队列 队列 双端队列 哈希表 树形结构 二叉树 二叉树 二叉搜索树 A ...

  9. 第2篇scrum冲刺(5.22)

    一.站立会议 1.照片 2.工作安排 成员 昨天完成工作 今日计划工作 困难 陈芝敏 写第一篇scrum 博客,调整工作 计划,学习接口使用 调用小程序接口获取用户微信登录权限,初始化 加载倒计时慢, ...

  10. Java动态代理(三)——Cglib动态代理

    一.Cglib动态代理Cglib是一个优秀的动态代理框架,它的底层使用ASM在内存中动态的生成被代理类的子类,使用Cglib即使代理类没有实现任何接口也可以实现动态代理功能.而且,它的运行速度要远远快 ...