python模块(三)
hashilib模块
hashilib模块的主要作用是加密,可以将明文数据通过一系列算法转化为秘闻数据。
目的是为了数据的安全。
加密算法包括md系列,sha系列,base系列,hmac系列。
基本使用
1.先确定算法类型。
2.将明文数据传递给算法。
3.获得加密后的密闻数据。
分段传值
在传递明文数据时,如果明文数据是一致的,那么无论怎么传值结果都是一样的。
算法选择
密文越长表示算法复杂,对应的破解算法的难度就越高。
但是越复杂的算法所消耗的资源也就越高,基于网络发送所占据的数据也就越大。
因此要使用什么算法需要看具体的需求(一般来说md5就足够了)。
密码存储
在涉及到用户的密码存储时,存储的都是密文,即使是内部程序员也无法得知明文内容。
这样的做法是为了用户信息的安全性。
加盐处理
加盐处理指的是在给明文数据在加密处理过程前添加一些干扰项。
为了更加的安全有时会添加动态的值,这种方式被称为动态加盐。
校验文件一致性
当需要比对文件是否一致时,可以将文件的密文进行比对,当密文一致时表示文件内容一致。
当文件特别大时,全部加密处理会相当耗时耗资源。
针对大文件可以采取切片操作的方式。
logging模块
日志等级
日志有五个等级(从上往下重要程度不一样)
1.logging.debug('debug级别') # 10
2.logging.info('info级别') # 20
3.logging.warning('warning级别') # 30
4.logging.error('error级别') # 40
5.logging.critical('critical级别') # 50
默认记录的级别为30及以上
详细介绍
1..logger对象:负责产生日志。
logger = logging.getLogger('')
2.filter对象:负责过滤日志(忽略)。
3.handlier对象:负责日志产生的位置。
hd1 = logging.FileHandler('文件名',encoding='utf8') # 产生到文件 hd2 = logging.StreamHandler() # 产生在终端
4.formatter对象:负责日志的格式。
fm = logging.Formatter( fmt='%(asctime)s - %(name)s - %(levelname)s -%(module)s: %(message)s', datefmt='%Y-%m-%d %H:%M:%S %p', )
5.绑定handler对象
logger.addHandler(hd1)
6.绑定formatter对象
hd1.setFormatter(fm)
7.设置日志等级
logger.setLevel(30)
8.记录日志
logger.debug('日志内容 ')
配置字典
字典的配置,复制改一下就行

import logging import logging.config standard_format = '[%(asctime)s][%(threadName)s:%(thread)d][task_id:%(name)s][%(filename)s:%(lineno)d]' \ '[%(levelname)s][%(message)s]' #其中name为getlogger指定的名字 simple_format = '[%(levelname)s][%(asctime)s][%(filename)s:%(lineno)d]%(message)s' logfile_path = 'a3.log' # log配置字典 LOGGING_DIC = { 'version': 1, 'disable_existing_loggers': False, 'formatters': { 'standard': { 'format': standard_format }, 'simple': { 'format': simple_format }, }, 'filters': {}, # 过滤日志 'handlers': { #打印到终端的日志 'console': { 'level': 'DEBUG', 'class': 'logging.StreamHandler', # 打印到屏幕 'formatter': 'simple' }, #打印到文件的日志,收集info及以上的日志 'default': { 'level': 'DEBUG', 'class': 'logging.handlers.RotatingFileHandler', # 保存到文件 'formatter': 'standard', 'filename': logfile_path, # 日志文件 'maxBytes': 1024*1024*5, # 日志大小 5M 'backupCount': 5, 'encoding': 'utf-8', # 日志文件的编码,再也不用担心中文log乱码了 }, }, 'loggers': { #logging.getLogger(__name__)拿到的logger配置 空字符串作为键 能够兼容所有的日志 '': { 'handlers': ['default', 'console'], # 这里把上面定义的两个handler都加上,即log数据既写入文件又打印到屏幕 'level': 'DEBUG', 'propagate': True, # 向上(更高level的logger)传递 }, # 当键不存在的情况下 (key设为空字符串)默认都会使用该k:v配置 }, } # 使用配置字典 logging.config.dictConfig(LOGGING_DIC) # 自动加载字典中的配置 logger1 = logging.getLogger('xxx') logger1.debug('日志内容')
第三方模块
第三方模块并不是python自带的,需要自行从网络下载。
下载方式
方式1:通过命令行借助pip工具下载(需先将pip添加到环境变量)。
pip3 install 模块名 # 下载最新版本模块
pip3 install 模块名==版本名 # 下载对应版本
pip3 install 模块名 -i 仓库地址 # 更换地址下载
方式2:pycharm快捷下载
settings
project
python interprter
双击或点击加号可下载
点击下方manage管理原地址可以更改下载地址
可下载的地址
pip命令默认下载的渠道是国外的python官网(有时候会非常的慢)
我们可以切换下载的源(仓库)
(1)阿里云 http://mirrors.aliyun.com/pypi/simple/
(2)豆瓣 http://pypi.douban.com/simple/
(3)清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/
(4)中国科学技术大学 http://pypi.mirrors.ustc.edu.cn/simple/
(5)华中科技大学http://pypi.hustunique.com/
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通