python(13)---发邮件写日志操作redis数据库
Posted 冒泡泡de可乐
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python(13)---发邮件写日志操作redis数据库相关的知识,希望对你有一定的参考价值。
一、写邮件
import yagmail user = ‘[email protected]‘ password = ‘rtcxbuejmqrdgjcd‘ #不是qq密码,是邮件授权码 在qq邮箱,设置--账户--开启POP3/SMTP服务,获得授权码 m=yagmail.SMTP(host=‘smtp.qq.com‘,user=user,password=password) #host-- 163邮箱用 tp.163.com m.send(to=[‘[email protected]‘,‘xxx.qq.com‘],cc=[‘xx.qq.com‘,‘xxx.qq.com‘], subject=‘明天不上课‘,contents=‘明天去体检‘,attachments=‘学生.xls‘, smtp_ssl=True) # to 收件人,发送给多个人时用list #cc 抄送给谁,多个人时用list #attachments 附件 用官方yagmail模块,附件名为中文是会显示乱码;改用nn改过的yagmail模块 # smtp_ssl=True QQ邮箱需加上,163邮箱不用
二、写日志
日志级别: error warning info debug 默认 级别越低,打印的信息越多 import nnlog #导入的是nn自己写的log模块 log =nnlog.Logger(‘my.log‘,level=‘info‘,backCount=3,when=‘S‘) #level--打印日志的级别 如果为error级别,比它级别低的日志都不会打印 #backCount--保存日志的最大个数,超过自动删除前面的 #when--产生日志的频率 D-每天 M-每分 S-每秒 log.info(‘lihui登录。。。‘) log.error(‘数据库连接失败‘)
三、操作redis数据库
先安装redis数据库
# 关系型数据库:oracle、mysql... #有表、有sql #数据放在磁盘上 # 非关系型数据库 nosql:redis,mongodb,memcache # 没有表 # 没有sql语句 # k-v # 每秒支持30w次读写 # 数据全部都是放在内存中的,性能高 (电脑一重启就没了) import redis ip =‘118.XX.3.40‘ password=‘HK139bckk‘ r= redis.Redis(host=ip,password=password,port=6379,db=3,decode_responses=True) #默认端口 6379 #db--选择哪个数据库 #加了decode_responses=True ,返回的二进制数据直接decode,下面就不用自己再写decode转换了 r.set(‘lh2‘,‘nihaoya‘) #新增和修改都用set res =r.get(‘lh2‘) #获取数据 print(res) #b‘nihaoya‘ 没有加 decode_responses=True 时 print(res.decode()) #‘nihaoya‘ decode() 二进制转成字符串 encode() 字符串转二进制 r.delete(‘lh2‘) #删除 r.flushdb() #删除这个数据库里面所有的key r.set(‘lh123‘,‘dudududu‘,20) #设置有效时间为20s res=r.get(‘session:lh‘) #数据库中文件夹分类 session即为文件夹名 print(res.decode()) print(r.keys()) #获取所有的key print(r.keys(‘session*‘)) #过滤以session开头的所有的key # res=r.get(‘mcx‘) # print(res.decode()) #redis中的哈希类型 就是一个两层字典 #哈希类型 的方法和其他数据类型的方法不一样 session={ "lh":{‘age‘:27,‘sex‘:‘nv‘}, "lh2":{‘age‘:28,‘sex‘:‘nan‘} } r.hset(‘jnz_stus‘,‘lw‘,‘hehehe‘) #添加hash类型的值:jnz_stus--外层大字典的key; lw--外层字典小key; hehehe--内层字典value res =r.hget(‘jnz_stus‘,‘mcx‘) #获取里面小key的值 print(res.decode()) r.delete(‘jnz_stus‘) #删除大key jnz_stus r.hdel(‘jnz_stus‘,‘lw‘) #删除指定的小key res = r.hgetall(‘jnz_stus‘) #获取到大key里面的所有数据 res_new={} for key ,value in res.items(): #没有加decode_responses=True时,需要手动循环decode res_new[key.decode()]=value.decode() print(res)
以上是关于python(13)---发邮件写日志操作redis数据库的主要内容,如果未能解决你的问题,请参考以下文章
DAY6 - os补充操作,发邮件,数据库操作,写excel,加密操作