常用模块(4)操作数据库,MD5(加密),写excel

1.加密模块

 

import hashlib

m = hashlib.md5()

#print(m.__doc__)#用来查看帮助文档 有哪些方法之类

# bytes

passwd = 'NHY_*&^_1982343532'

# passwd.encode() #把字符串转成bytes类型

m.update(passwd.encode())   #不能直接对字符串加密,要先把字符串转成bytes类型

print(m.hexdigest())

#md5加密是不可逆

 

#撞库 (网上解密原理)

# befor         after

   # nhy123  81fb61ce98e508df8dbe8da07ad9acfc

 

def my_md5(str):   #定义一个加密函数

  import hashlib

  new_str = str.encode() #把字符串转成bytes类型

  # new_str = b'%s'%str  #把字符串转成bytes类型

  m = hashlib.md5()  #实例化md5对象

  m.update(new_str)  #加密

  return m.hexdigest()  #获取结果返回

 

# hashlib.sha512 不同位数加密

2.操作数据库

import pymysql

# 1、连上数据库  账号、密码 ip 端口号 数据库

#2、建立游标

#3、执行sql

#4 、获取结果

# 5、关闭游标

#6、连接关闭

coon = pymysql.connect(

  host='192.168.6.23',user='jxz',passwd='123456',

  port=3306,db='jxz',charset='utf8'

  #port必须写int类型,

  #charset这里必须写utf8

)

cur = coon.cursor() #建立游标

# cur.execute('select * from stu;')#执行sql语句

cur.execute('insert into stu (id,name,sex) VALUE (1,"牛寒阳","女");')

# delete update insert

coon.commit()  #必须得coomit

res = cur.fetchall()  #获取所有返回的结果 不能直接获取必须通过函数

print(res) #每个结果放入一个二维数组

cur.close()#关闭游标

coon.close()#关闭连接

 

 

将其分装为一个函数

def my_db(host,user,passwd,db,sql,port=3306,charset='utf8'):

  import pymysql

  coon = pymysql.connect(user=user,

                                 host=host,

                                 port=port,

                                 passwd=passwd,

                                 db=db,

                                 charset=charset

                                 )

  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

 

3.写excel

import xlwt

 

book = xlwt.Workbook() #新建一个excel

sheet = book.add_sheet('sheet1')#加sheet页

sheet.write(0,0,'姓名')#行、列、写入的内容

sheet.write(0,1,'年龄')

sheet.write(0,2,'性别')

book.save('stu.xls')#结尾一定要用

 

猜你喜欢

转载自www.cnblogs.com/cslw5566/p/8934551.html