Logging模块 + traceback模块 + importlib模块 + requests模块
Logiging模块日志级别
CRITICAL = 50
FATAL = CRITICAL
ERROR = 40
WARNING = 30
WARN = WARNING
INFO = 20
DEBUG = 10
NOTSET = 0
只能写入到一个文件,多次声明无效
import logging logging.basicConfig(
# filename='l1.log',
# format='%(asctime)s - %(name)s - %(levelname)s -%(module)s: %(message)s',
# datefmt='%Y-%m-%d %H:%M:%S %p',
# level=logging.INFO #这里定义这个值是阀值,如果超过这个数了才会写入文件中
# )
# logging.log(logging.ERROR,'123123')
所以我们只能自定义
def error_log(message):
#创建文件对象
file_1_1 = logging.FileHandler('error.log', 'a+', encoding='utf-8')
fmt = logging.Formatter(fmt="%(asctime)s - %(name)s - %(levelname)s -%(module)s: %(message)s")
file_1_1.setFormatter(fmt)
# 创建日志对象
logger1 = logging.Logger('error', level=logging.ERROR) # 日志对象和文件对象创建关系
logger1.addHandler(file_1_1) logger1.log(logging.FATAL,message) def run_log(message):
file_1_1 = logging.FileHandler('run.log', 'a+', encoding='utf-8')
fmt = logging.Formatter(fmt="%(asctime)s - %(name)s - %(levelname)s -%(module)s: %(message)s")
file_1_1.setFormatter(fmt)
# 创建日志对象
logger1 = logging.Logger('run', level=logging.ERROR)
# 日志对象和文件对象创建关系
logger1.addHandler(file_1_1) logger1.log(logging.FATAL,message)
traceback模块
详细错误信息打印
class NicPlugin(BasePlugin):
def linux(self):
"""
执行命令,获取资产信息
:return:
"""
ret = BaseResponse()
try:
result = self.cmd('nic')
ret.data = result
except Exception as e:
v = traceback.format_exc()
ret.status = False
ret.error = v
# 写入本地日志
obj = LoggerHelper.instance()
obj.error_logger.log(50,v)
return ret
importlib模块
这个方法就跟django里面的中间件配置方法一个意思
import importlib
file_path,class_name = v.rsplit(','1)
print(file_path,class_name)
##例如输出的是目录下文件 和 类名
m=importlib.import_module(file_path) #以字符串形式导入模块 cls=getattr(m,class_name)
obj=cls()
requests模块
settings.API=‘www.baidu.com’
response = requests.post(
url=settings.API,
json = info
#如果传输格式是json的话,它就会把你的值先序列化,然后在传给API 实际上代码也就是以json.dumps发过去
# data = info #如果是data 那你传什么,它就给api里面发什么
) request.POST其实是从body里面把数据拿回来.转换成字典,让你使用的!!
def get_host_list(self):
import json
response = requests.get(settings.API)
host_list = json.loads(response.text) #所以的数据都是在text中
return host_list
实际上request 返回的有好几种类型:
-text 字符串类型
-content 字节类型(bytes)
-status_code 状态码
-cookies
-headers 响应头 (请求头和请求体 是由2个换行符分割的)
例如:ret = requests.post(url='http://www.baidu.com',params={'k1':'v1','k2':'v2'},json=json.dumps({'user':‘zcq','pwd':'nb'}))
这里就是把用json把数据序列化成字符串在传过去
ret = requests.post(url='http://www.baidu.com',params={'k1':'v1','k2':'v2'},data={'user':‘zcq','pwd':'nb'},) 可以在POST中包含内容传过去
Logging模块 + traceback模块 + importlib模块 + requests模块的更多相关文章
- Python【模块】importlib,requests
内容概要: 模仿django中间件的加载方式 importlib模块 requests模块 rsplit() 用实际使用的理解来解释两个模块 importlib模块 ...
- requests模块基础
requests模块 .caret, .dropup > .btn > .caret { border-top-color: #000 !important; } .label { bor ...
- [实战演练]python3使用requests模块爬取页面内容
本文摘要: 1.安装pip 2.安装requests模块 3.安装beautifulsoup4 4.requests模块浅析 + 发送请求 + 传递URL参数 + 响应内容 + 获取网页编码 + 获取 ...
- 爬虫(四)requests模块1
引入 Requests 唯一的一个非转基因的 Python HTTP 库,人类可以安全享用. 警告:非专业使用其他 HTTP 库会导致危险的副作用,包括:安全缺陷症.冗余代码症.重新发明轮子症.啃文档 ...
- 04.Python网络爬虫之requests模块(1)
引入 Requests 唯一的一个非转基因的 Python HTTP 库,人类可以安全享用. 警告:非专业使用其他 HTTP 库会导致危险的副作用,包括:安全缺陷症.冗余代码症.重新发明轮子症.啃文档 ...
- Python网络爬虫之requests模块(1)
引入 Requests 唯一的一个非转基因的 Python HTTP 库,人类可以安全享用. 警告:非专业使用其他 HTTP 库会导致危险的副作用,包括:安全缺陷症.冗余代码症.重新发明轮子症.啃文档 ...
- requests模块学习
- 基于如下5点展开requests模块的学习 什么是requests模块 requests模块是python中原生的基于网络请求的模块,其主要作用是用来模拟浏览器发起请求.功能强大,用法简洁高效.在 ...
- 爬虫概念 requests模块
requests模块 - 基于如下5点展开requests模块的学习 什么是requests模块 requests模块是python中原生的基于网络请求的模块,其主要作用是用来模拟浏览器发起请求.功能 ...
- 爬虫--requests模块学习
requests模块 - 基于如下5点展开requests模块的学习 什么是requests模块 requests模块是python中原生的基于网络请求的模块,其主要作用是用来模拟浏览器发起请求.功能 ...
- python 网络爬虫requests模块
一.requests模块 requests模块是python中原生的基于网络请求的模块,其主要作用是用来模拟浏览器发起请求.功能强大,用法简洁高效. 1.1 模块介绍及请求过程 requests模块模 ...
随机推荐
- yum安装包另存
yum install --downloadonly --downloaddir=/tmp <package-name> 1.yum已安装的列表 yum list installed
- 【Mysql sql inject】【入门篇】sqli-labs使用 part 3【15-17】
Less-15- Blind- Boolian Based- String 1)工具用法: sqlmap -u --batch --technique BEST 2)手工注入 时间盲注放弃用手工了 ...
- 关于出现Not an editor command: Bundle '**/*.vim'的解决方案【转】
转自:https://blog.csdn.net/YHM07/article/details/49717933 操作系统: $ uname -r 2.6.32-573.7.1.el6.x86_64 $ ...
- python计算最大公约数和最小公倍数
a=4 b=2 def gcd(a,b): return a if b==0 else gcd(b,a%b) def lcm(a,b): return a*b//gcd(a,b) print(gcd( ...
- Android设计模式-观察者模式
原文地址 http://blog.csdn.net/qq_25806863/article/details/69218968 观察者模式是一种使用频率非常高的设计模式,最常用的地方就是订阅-发布系统. ...
- 测试开发之Django——No7.Django模板中的过滤器
1.add 将参数添加到值. 例如: {{ value|add:"2" }} 如果value是4,那么输出将是6. 此过滤器将首先尝试将两个值强制转换为整数.如果失败,它将尝试将值 ...
- js十大排序算法详解
十大经典算法导图 图片名词解释:n: 数据规模k:“桶”的个数In-place: 占用常数内存,不占用额外内存Out-place: 占用额外内存 1.冒泡排序 1.1 原始人冒泡排序 functi ...
- python 全栈开发,Day61(库的操作,表的操作,数据类型,数据类型(2),完整性约束)
昨日内容回顾 一.回顾 定义:mysql就是一个基于socket编写的C / S架构的软件 包含: ---服务端软件 - socket服务端 - 本地文件操作 - 解析指令(mysql语句) ---客 ...
- python 全栈开发,Day54(node.js初识)
一.什么是Node.js 简单的说 Node.js 就是运行在服务端的 JavaScript.Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台.Node.js是一个事 ...
- Ubuntu安装VirtualBox以及CentOS7.5联网设置
一.virtualBox的安装 官方Liunx版本下载地址: https://www.virtualbox.org/wiki/Linux_Downloads 这里选择下载ubuntu 16.04 ...