日志
参考文献
如果设置了日志级别为NOTSET,那么这里可以采取debug、info的级别的内容也可以显示在控制台上了
import logging
logging.basicConfig(level=logging.NOTSET) # 设置日志显示级别
logging.basicConfig(level=logging.DEBUG,
format='%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s') # logging.basicConfig函数对日志的输出格式及方式做相关配置
#########################################################################################################
output> 2021-03-07 22:10:32,403 - logs.py[line:11] - INFO: this is a loggging info message
创建日志对象
logger = logging.getLogger()
logger.setLevel(logging.INFO) # Log等级总开关
创建handler
fh = logging.FileHandler('logs/demo1.log', mode='w')
fh.setLevel(logging.DEBUG) # 输出到file的log等级的开关
定义handler输出格式
formatter = logging.Formatter("%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s")
fh.setFormatter(formatter)
日志对象中添加handler
logger.addHandler(fh)
Redis
from redis import *
if __name__=="__main__":
try:
#创建StrictRedis对象,与redis服务器建⽴连接
sr = StrictRedis()
result = sr.set('name', 'liangl')
print(sr.get('name'))
except Exception as e:
print(e)
常规命令
result = sr.set('name','laozhao') # 存在则修改,不存在则添加,成功返回True, 失败返回False
result = sr.get('name') # 不存在返回None
result = sr.delete('name') # 返回受影响的键数
result=sr.keys() # 根据正则表达式获取键
pipeline
from redis import *
if __name__ == "__main__":
try:
redis = StrictRedis()
pipeline = redis.pipeline()
pipeline.set('name', 'redis')
pipeline.execute()
except Exception as e:
print(e)
验证码
- 前端 生成验证码编号 发送到后端
- 后端拿到编号对应的验证码图片响应给前端,同时将 {编号:文字}作为键值对 存入redis
- 待前端用户输入验证码后,后端取出redis中的键值对,进行比对。