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('日志内容')
logging字典
第三方模块
第三方模块并不是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/
python模块(三)的更多相关文章
- Python模块三
collections模块 在内置数据类型(dict.list.set.tuple)的基础上,collections模块还提供了几个额外的数据类型:Counter.deque.defaultdict. ...
- Python模块(三)(正则,re,模块与包)
1. 正则表达式 匹配字符串 元字符 . 除了换行 \w 数字, 字母, 下划线 \d 数字 \s 空白符 \n 换行符 \t 制表符 \b 单词的边界 \W \D \S 非xxx [ ...
- 【转】python模块分析之typing(三)
[转]python模块分析之typing(三) 前言:很多人在写完代码一段时间后回过头看代码,很可能忘记了自己写的函数需要传什么参数,返回什么类型的结果,就不得不去阅读代码的具体内容,降低了阅读的速度 ...
- python模块分析之typing(三)
前言:很多人在写完代码一段时间后回过头看代码,很可能忘记了自己写的函数需要传什么参数,返回什么类型的结果,就不得不去阅读代码的具体内容,降低了阅读的速度,加上Python本身就是一门弱类型的语言,这种 ...
- 孤荷凌寒自学python第三十五天python的文件操作之针对文件操作的os模块的相关内容
孤荷凌寒自学python第三十五天python的文件操作之针对文件操作的os模块的相关内容 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 一.打开文件后,要务必记得关闭,所以一般的写法应当 ...
- 孤荷凌寒自学python第三十一天python的datetime.timedelta模块
孤荷凌寒自学python第三十一天python的datetime.timedelta模块 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) datetime.timedelta模块是一个表示 ...
- 孤荷凌寒自学python第三十天python的datetime.datetime模块
孤荷凌寒自学python第三十天python的datetime.datetime模块 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) datetime.datetime模块包含了:datet ...
- Python(三)基础篇之「模块&面向对象编程」
[笔记]Python(三)基础篇之「模块&面向对象编程」 2016-12-07 ZOE 编程之魅 Python Notes: ★ 如果你是第一次阅读,推荐先浏览:[重要公告]文章更新. ...
- (三)运用Python模块和包
1 引言 为了能够在Python项目中高效地运用Python模块和包,我们需要进一步地来了解它们是如何在Python项目中进行定义.使用和工作的. 2 Python模块和包 Python模块和包的基本 ...
- Python模块之configpraser
Python模块之configpraser 一. configpraser简介 用于处理特定格式的文件,其本质还是利用open来操作文件. 配置文件的格式: 使用"[]"内包含 ...
随机推荐
- [atARC126F]Affine Sort
记$g(k)$为$c$恰为$k$的合法三元组数,显然$f(k)=\sum_{i=1}^{k}g(i)$ 结论:若$\lim_{k\rightarrow \infty}\frac{g(k)}{k^{2} ...
- [luogu5438]记忆
令$f(x)=\frac{x}{\max_{k^{2}|x}k^{2}}$,最优解即将$f(l),f(l+1),...,f(r)$排序,那么每存在一种不同的数则答案减1,那么$x$出现当且仅当$f(x ...
- 解决Windows7、Windows10 ping不通的问题
在VLAN交换机网络下面不能访问Windows10或者Windows7共享.ping不通问题,关闭防火墙发现能ping通了共享也正常了. 但是关闭防火墙将给电脑系统留下安全隐患.不怕麻烦的可以继续往下 ...
- layui页面操作,点击一个添加页面,跳转有确定,然后点击确定后将选择的几个数据返回前一个页面获取值,然后ajax请求后台
custUserIndex.html [添加页面代码] <!DOCTYPE html> <html> <head> <meta charset="u ...
- Codeforces 708E - Student's Camp(前缀和优化 dp)
Codeforces 题目传送门 & 洛谷题目传送门 神仙 *3100,%%% 首先容易注意到 \(\forall i\in[1,m]\),第 \(i\) 行剩余的砖块一定构成一个区间,设其为 ...
- Session和Cookie的原理,以及在分布式应用中出现的问题和解决方案
产生原因 由于http协议是无状态的,同一个浏览器对服务器的两次请求之间是没有关系的,服务器认为两次请求都是全新的请求,不会记住上次请求成功的数据.然而现有的业务常常需要服务器能记住用户的访问情况, ...
- annovar 注释除人类以外的SNP
1. 准备文件: ref.fa ref.gtf或者gff3,最好是gtf3,可将gff3转化为gtf sample.vcf 2. 用gff3ToGenePred与gtfToGenePred工具将gtf ...
- 一个好用的快速安装lnmp环境包lnmp1-6
一个好用的快速安装lnmp环境包lnmp1-6 地址:https://lnmp.org/tag/lnmp1-6/
- 网站性能调优实战-学相伴KuangStudy
面对并发我们是如何优化KuangStudy网站性能的? 每个项目都会随着用户和数据的增长调整架构,来面对未来的问题,我们也不例外,在1月5号我们平台正式公测后,引起了很多观众的热烈反响,仅仅4天,注册 ...
- springcloud - alibaba - 2 - 集成Feign - 更新完成
1.依赖 依赖管理 <parent> <artifactId>spring-boot-parent</artifactId> <groupId>org. ...