devStandard/docs/learning/9-python/5-常见模块.md
2025-03-29 14:35:49 +08:00

1.7 KiB
Raw Blame History

常见模块

网络请求requests

# request
import requests

# 会话保持
session = requests.session()
# 设置header
session.headers.update(headers)

session.post(url, data=data)

===这个库是同步===

  • session持久化到本地
import pickle
import requests

session = requests.Session()

# 序列化成二进制文件
with open('session.pkl', 'wb') as f:
    pickle.dump(session, f)

# 反序列化
with open('session.pkl', 'wb') as f:
    pickle.dump(session, f)

response = session.get('https://httpbin.org/get')
print(response.json())

httpx

https://www.python-httpx.org/

支持同步&异步 API,同时支持 HTTP/1.1HTTP/2

日志模块

# python 已内置
import logging
# 日志模块
logging.basicConfig(level=logging.INFO, format="%(asctime)s - %(levelname)s - %(message)s")
logger = logging.getLogger()
# 兼容pm2使用流模式

import logging
import sys

# 创建一个logger
logger = logging.getLogger("test")
# 创建一个handler将日志发送到stdout
stdout_handler = logging.StreamHandler(sys.stdout)
# 创建一个formatter定义日志输出格式
formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')
# 将formatter添加到handler
stdout_handler.setFormatter(formatter)
# 将handler添加到logger
logger.addHandler(stdout_handler)
# 设置日志级别(可选)
logger.setLevel(logging.INFO)

验证码

import ddddocr
ocr = ddddocr.DdddOrc
code = ocr.classification (二进制文件流)

uvicorn

一个专门用于为ASGI应用提供服务的Web服务器实现,它非常快,支持HTTP/2,可以与FastAPI等框架配合使用。