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模块的更多相关文章

  1. Python【模块】importlib,requests

    内容概要:      模仿django中间件的加载方式      importlib模块      requests模块  rsplit()   用实际使用的理解来解释两个模块 importlib模块 ...

  2. requests模块基础

    requests模块 .caret, .dropup > .btn > .caret { border-top-color: #000 !important; } .label { bor ...

  3. [实战演练]python3使用requests模块爬取页面内容

    本文摘要: 1.安装pip 2.安装requests模块 3.安装beautifulsoup4 4.requests模块浅析 + 发送请求 + 传递URL参数 + 响应内容 + 获取网页编码 + 获取 ...

  4. 爬虫(四)requests模块1

    引入 Requests 唯一的一个非转基因的 Python HTTP 库,人类可以安全享用. 警告:非专业使用其他 HTTP 库会导致危险的副作用,包括:安全缺陷症.冗余代码症.重新发明轮子症.啃文档 ...

  5. 04.Python网络爬虫之requests模块(1)

    引入 Requests 唯一的一个非转基因的 Python HTTP 库,人类可以安全享用. 警告:非专业使用其他 HTTP 库会导致危险的副作用,包括:安全缺陷症.冗余代码症.重新发明轮子症.啃文档 ...

  6. Python网络爬虫之requests模块(1)

    引入 Requests 唯一的一个非转基因的 Python HTTP 库,人类可以安全享用. 警告:非专业使用其他 HTTP 库会导致危险的副作用,包括:安全缺陷症.冗余代码症.重新发明轮子症.啃文档 ...

  7. requests模块学习

    - 基于如下5点展开requests模块的学习 什么是requests模块 requests模块是python中原生的基于网络请求的模块,其主要作用是用来模拟浏览器发起请求.功能强大,用法简洁高效.在 ...

  8. 爬虫概念 requests模块

    requests模块 - 基于如下5点展开requests模块的学习 什么是requests模块 requests模块是python中原生的基于网络请求的模块,其主要作用是用来模拟浏览器发起请求.功能 ...

  9. 爬虫--requests模块学习

    requests模块 - 基于如下5点展开requests模块的学习 什么是requests模块 requests模块是python中原生的基于网络请求的模块,其主要作用是用来模拟浏览器发起请求.功能 ...

  10. python 网络爬虫requests模块

    一.requests模块 requests模块是python中原生的基于网络请求的模块,其主要作用是用来模拟浏览器发起请求.功能强大,用法简洁高效. 1.1 模块介绍及请求过程 requests模块模 ...

随机推荐

  1. CentOS7配置网络

    #进入目录 cd /etc/sysconfig/network-scripts/ #编辑ifcfg-XXX vi ifcfg-eno167777 #把onboot=no 改为yes #重启 shutd ...

  2. 深入理解node.js异步编程:基础篇

    ###[本文是基础内容,大神请绕道,才疏学浅,难免纰漏,请各位轻喷] ##1. 概述 目前开源社区最火热的技术当属Node.js莫属了,作为使用Javascript为主要开发语言的服务器端编程技术和平 ...

  3. [USACO12DEC]逃跑的BarnRunning Away From…

    题意 给出以1号点为根的一棵有根树,问每个点的子树中与它距离小于等于l的点有多少个 题解 似乎有好多种做法啊……然而蒟蒻只会打打主席树的板子…… 调了一个上午一直WA……狠下心来重打一遍居然直接一遍过 ...

  4. phpstudy中apache的默认根目录的配置

    默认配置文件是:vhosts.conf. 安装laravel后需要把根目录配置到public. 下面的配置需要在本地计算机的host文件配置域名,一个是“localhost”,一个是“www.goho ...

  5. ubuntu 14.04 上配置vlc组播源

    VLC:  Video LAN多媒体播放器,是一个跨平台开源的软件,支持主流的编码格式MPEG-2.H.264等. (1)ubuntu上安装vlc: sudo  apt-get install vlc ...

  6. 一个shell的面试题

    5.写一个脚本,实现判断192.168.1.024网络里,当前在线的D有哪些,能ping通则认为在线,在线输出"TP地址UP",不在线输出TP地址DOWN",无其他输出. ...

  7. vue-router两种模式,到底什么情况下用hash,什么情况下用history模式呢?

    转:https://segmentfault.com/q/1010000010340823/a-1020000010598395 为什么要有 hash 和 history 对于 Vue 这类渐进式前端 ...

  8. 【前端】三个bug

    目录 一.Array对象的indexOf() 二.使用jquery,clone()下拉框问题 三.jquery获取获取html5的data-*属性 一.Array对象的indexOf() 1.inde ...

  9. Java编码与乱码问题

    一.为什么要编码? 由于人类的语言太多,因而表示这些语言的符号太多,无法用计算机的一个基本的存储单元----byte来表示,因而必须要经过拆分或一些翻译工作,才能让计算机能理解. byte一个字节即8 ...

  10. C++ code:浮点数的比较(Floating-Pointing Number Comparison)

    浮点数可以进行比较,但是浮点数由于表示精度在不同浮点数类型中的差异,所以会被误用.例如: #include <iostream> using namespace std; int main ...