python常用模块,datetime,random,yagmail,pymysql, redis,hashlib

时间:2022-12-25 22:37:41
import datetime
res=datetime.datetime.today()#取到今天的时间精确到时分秒
res1=datetime.date.today()#取今天的时间精确到年月日
print(res.date())#只取日期
print(res.time())#只取时间
print(res.strftime('%Y-%m-%d %H%M%S'))#格式化时间
print(res.timestamp())#时间戳
res2=datetime.date.today()+datetime.timedelta(days=-1)#今天前一天日期
res2=datetime.date.today()+datetime.timedelta(days=1)#今天后一天日期
res2=datetime.datetime.today()+datetime.timedelta(hours=1,minutes=1,seconds=1)#当前时间后1小时1分钟1秒
print(res2)

import random
print(random.random())#取1以内的随机小数
print(random.randint(1,10))#指定范围取随机的整数
print(random.uniform(1,10))#指定范围,取随机的小数
print(random.uniform(1.9,10.9))#指定范围,取随机的小数
s='abcdefg'
s=['a','b','q','o','jing']
print(random.choice(s))#随机选择一个,只能选一个
print(random.sample(s,2))#随机选择N个值,返回的是一个list

import yagmail
username = 'xxx@163.com'
pwd = 'xxxx'
email=yagmail.SMTP(user=username,password=pwd,host='smtp.163.com')
email.send(to='10@qq.com',
cc='11@qq.com',
subject='test加油',
contents='test yagmail',
attachments=r'F:\test\账号密码\博客账号.txt')

import pymysql
connect=pymysql.connect(host='118.24.3',user='j',
password='123456',port=3306,
db='jxz',charset='utf8',autocommit=True)
cur=connect.cursor()#建立游标
sql='insert into my_user value(21,"aa","123","0");'
cur.execute(sql)
cur.execute('select * from my_user;')#执行sql语句
print(cur.fetchall())#获取查询到的左右结果
print(cur.fetchmany(3))#指定获取几条
print(cur.fetchone())#获取一条数据
cur.close()#关闭游标
connect.close()#关闭连接

import redis
r=redis.Redis(host='118.24.3.40',port=6379,password='HK139bc&*',db=10)#连接redis
#操作string类型的
#增删改查
r.set('nnn','xxxxaaa')#增加或修改数据
r.set('bj','三里屯',90)#90秒倒计时,倒计时结束后删除数据
res=r.get('nnn')#获取数据,二进制
print(res)
#r.delete('nnn')#指定一个key,删除,key不存在的话返回None
print(res.decode())#将编码变成字符串
#其他方法
print(r.keys())#获取到所有的key
print(r.keys('*j'))#获取到以j结尾的key
print(r.exists('bj'))#判断这个key是否存在
r.flushdb()#清空当前数据库里面所有的key
r.expire('a',90)#指定key的失效时间
print(r.ttl('a'))#查看key的失效时间
print(r.type('a'))#查看key的类型

python常用模块,datetime,random,yagmail,pymysql, redis,hashlib

select 10,redis里面select 8就是切换数据库
#hash哈希类型的key
#可以理解为字典嵌套字典

#增删改查
r.hset('session_crm','A','aaa')#增加,修改
r.hset('session_crm','B','bbb')
r.hset('session_crm','C','ccc')
#r.hdel('session_crm','C')#删除指定小key
#r.delete('session_crm')#删除大key
r.hgetall('session_crm')#获取hash类型里面所有的数据

#把byte类型转换成sting类型
res=r.hgetall('session_crm')
print(res)
# #方法一
# a={}
# for k,v in res.items():
# a[k.decode()]=v.decode()
# print(a)
#方法二
for k,v in res.items():
#res[k.decode()]=v.decode()#能节省内存,因为他把原来的key删掉了
#res.pop(k)#把原来的bytes类型的key删掉,这样的话,res里面就没有多余的byte类型的数据了
res[k.decode()]=res.pop(k).decode()
print(res)
加密模块
import hashlib
s='123456'
print(s.encode())
m=hashlib.md5(s.encode())#必须传一个bytes类型
print(m.hexdigest())#获取到加密后的结果
#md5加密是不可逆的,所有一样的字符md5之后都是一样的
#撞库
a=hashlib.sha224(s.encode())#与md5加密后的长度不一样
print(a.hexdigest())

def myMd5(s):#封装的md5函数
s=str(s)
m=hashlib.md5(s.encode())#必须传一个types类型
return m.hexdigest()