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

85 lines
1.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 常见模块
## 网络请求requests
```python
# request
import requests
# 会话保持
session = requests.session()
# 设置header
session.headers.update(headers)
session.post(url, data=data)
```
===这个库是同步===
* session持久化到本地
```python
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.1``HTTP/2`
## 日志模块
```python
# python 已内置
import logging
# 日志模块
logging.basicConfig(level=logging.INFO, format="%(asctime)s - %(levelname)s - %(message)s")
logger = logging.getLogger()
```
```python
# 兼容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)
```
## 验证码
```python
import ddddocr
ocr = ddddocr.DdddOrc
code = ocr.classification (二进制文件流)
```
## uvicorn
> 一个专门用于为ASGI应用提供服务的Web服务器实现,它非常快,支持HTTP/2,可以与FastAPI等框架配合使用。