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模块模 ...
随机推荐
- Android避免OOM(内存优化)
Android内存优化是性能优化很重要的一部分,而如何避免OOM又是内存优化的核心. Android内存管理机制 android官网有一篇文章 Android是如何管理应用的进程与内存分配 Andro ...
- kali linux 破解wpa密码
apt-get update apt-get install hostapd-wpe ls -l /etc/hostapd-wpe/ nano /etc/hostapd-wpe/hostapd-wpe ...
- KERMIT,XMODEM,YMODEM,ZMODEM传输协议小结
转:http://blog.163.com/czblaze_3333/blog/static/208996228201272295236713/ Kermit协议 报文格式: 1. MAR ...
- UML和模式应用3:迭代和进化式分析和设计案例研究
1.前言 如何进行迭代和进化式分析和设计?将采用案例研究的方式贯穿始终.案例研究所包含的内容: UI元素 核心应用逻辑层 数据库访问 与外部软硬构件的协作 本章关于OOA/D主要介绍核心应用逻辑层 2 ...
- shell无法捕获程序输出的问题
dir_name=`echo ~gtp` 获取的用户目录为/ dir_name=`echo ~gtp 2>&1` 这样就可以获取到了 参考网址:https://blog.csdn.net ...
- python系统编码转换
# coding:gbk import sys import locale def p(f): print '%s.%s(): %s' % (f.__module__, f.__name__, f() ...
- centos6.5系统bash损坏之救援模式修复
1.模拟bash被损坏的情况 # mv /bin/bash /tmp [root@localhost ~]# sync [root@localhost ~]# shutdown -r now 2.挂载 ...
- Oracle查询表主键、外键
项目中用到的一些Sql(oracle下的)总结: 1.查找表的所有索引(包括索引名,类型,构成列) select t.*,i.index_type from user_ind_columns t,us ...
- linux - awk 和kill 批量杀死进程
ps -ef|grep check_os.sh | grep -v grep | awk '{print $2}' | xargs kill -9 $2表示第2列,即进程号PID; grep -v g ...
- python 全栈开发,Day119(Flask初识,Render Redirect HttpResponse,request,模板语言 Jinja2,用户登录例子,内置Session)
一.Flask初识 首先,要看你学没学过Django 如果学过Django 的同学,请从头看到尾,如果没有学过Django的同学,并且不想学习Django的同学,轻饶过第一部分 三大主流Web框架对比 ...