冒泡泡de可乐
代码都是思想和概念的体现~每多学一点知识,就能少写一行代码~

一、写邮件

import yagmail

user = '1597078213@qq.com'
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=['511402865@qq.com','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数据库

console中执行命令:   select 1 — 选择数据库 1

                                     set  name  lh   — 添加/修改数据

                                     get  name    — 取值 

# 关系型数据库: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)

 

posted on 2018-10-15 22:22  HathawayLee  阅读(253)  评论(0)    收藏  举报