一, 课前小甜点
二, 作业讲解, json补充
1, python 可以序列化的数据类型:
+===================+===============+
| dict | object | {key:value}
+-------------------+---------------+
| list, tuple | array | [1,2,3]
+-------------------+---------------+
| str | string | 'alex'
+-------------------+---------------+
| int, float | number | 100,103
+-------------------+---------------+
| True | true |
+-------------------+---------------+
| False | false |
+-------------------+---------------+
| None | null |
+-------------------+---------------+
2, json字符串, 和python的str 到底差在哪?
1, json字符串, 在数据的外面, 始终是用单引号引起来的,
2, json字符串, 如果数据是容器类的数据类型, 且,里面有字符串, 则字符串一定是双引号.
三, 今日内容
1, hashlib 与加密相关, 实际是它是一堆算法的合集,被称为摘要算法(包含很多算法, 大概有七八个, 分别都是用于加密功能的.)
1, hash() 哈希: 是一种算法, 返回的结果的内存地址. (hashlib与此函数无关)
2, hashlib的过程就是将字符串转化成等长的数字的过程
3, hashlib对相同的字符串转化成的数字相同.
4, 不同的服务器, 对相同的字符串进行加密, 转化成的数字相同.
5, 初始 hashlib的两种算算法: 用法: 1, 密文(密码加密); 2, 文件校验
hashlib.md5() : 常用算法, 可以满足一般的常用需求:
用法:
第一步 创建一个md5的对象: ret=hashlib.md5( 可以加盐 )
第二步: 进行加密( 必须是bytes类型): ret.update(s.encode())
第三步得到加密后的结果(无论字符串多长 这个返回结果都是定长的), ret.hexdigest()
撞库: 一个一个试, 因为它的存在所以不安全
hashlib.sha(): 里面有很多中算法, 这里面的算法, 数字越大, 加密效率越低, 越安全. sha1 与md5 级别相同, 但是sha1 比 md5 更安全一些( 因为sha1出来的晚, 用的人比较少,撞库比较晚)
用法: 同md5 一样.
2, configparser 配置文件: 放置一些常用的 变量, 路径; 帮助自己 操作(创建, 增删改查)一个配置文件的模块
config = configparser.Configparser() :创建一个对象
config.write(文件句柄) : 对象调用write方法,把内容写到文件句柄中.
增删改查的操作: 顺序: 先创建一个对象, 然后将文件读到内存中,在进行相应的操作.
3, logging模块, 日志: 辅助自己记录日志的, 不是自动记录日志的. *********
生活上的用处: 1, 公司员工的信息, 工号 等等需要日志.
2, 淘宝, 京东 你的消费信息, 浏览记录等等都记录日志, 个性化推荐
3, 头条的个性化设置.
工作上的用处:1, 运维人员, 任何员工对服务器做过的任何操作, 都会记录到日志中.
2, 如果你要是从事运维开发的工作, 各处都需要日志.
3, debug模式, 需要依靠日志的
4, 定时收集信息.
1, 低配版的logging:
logging.debug('debug message') #调试信息( 不常用)
logging.info('info message' ) # 正常信息( 不常用)
logging.warning('warning message') # 警告信息( 代码虽然不报错, 但是警告你写的不规范)
logging.error('error message') # 错误信息
logging.critical('critical message' ) # 严重错误信息
logging.basicConfig(level=logging.ERROR, format='%s()...')
1, 调整格式:(完善报错信息): 更改format 关键字参数
2, low版 logging模块, 只能在 打印内容 或 写入文件, 进行二选一. 写入文件时, 编码方式 默认gbk
2, 高配版用 logger 对象