aiohttp ---- Async IO Web Framework
文章目录
Client
ClientSession
response
- resp.status
一次性读取内容
resp.text()
- 文本 str 类型
- resp.text(encoding='gbk')
resp.read()
- bytes 类型
resp.json()
- 提取 json
流模式读取 Streaming Response Content
- resp.content.read(10)
request
- session.get
- session.put
关键字参数 arguments
params
- 格式:http://hello.com?key=value&key1=vale1
- session.get(http://hello.com, params=params)
json
- session.post(url, json={'test': 'value'})
Post 请求
sesson.post https://docs.aiohttp.org/en/stable/client_quickstart.html#more-complicated-post-requests
传输 dict
用途:用于传输表格数据 form-encoded data, like html form
1 2payload = {'name': 'lily', 'score': 80} session.post(url, data=payload)
传输 bytes
This data will be posted directly and content-type set to ‘application/octet-stream’
| |
传输 json
| |
传输文件 file
- 使用 data 关键字参数
- 单个文件模式
- 多个文件模式
| |
WebSockets
创建
session.ws_connect(url)
返回值:ClientWebSocketResponse
- 类似 Response like
| |
接受信息
| |
发送信息
| |
Timeouts 超时
https://docs.aiohttp.org/en/stable/client_quickstart.html#timeouts
指定方法
创建 session 时,ClientSession(timeout=timeout)
- timeout = aiohttp.ClientTimeout(total=60)
- 请求时,session.get(url, timeout=timeout)
Server
接口
总体格式
要素
web 应用
web.Application() 类
- 路径处理工具 handler
注意接口
接受一个 Request
- async def hello(request)
- 返回一个 web.Response()
- 运行 web 应用
- web.run_app
| |
handler 定义与添加
使用 web.get 设置(Django 风格)
- 先定义
- 再逐个手动添加
| |
使用装饰器(flask 风格)
定义时自动添加
- 定义和添加放到一起
装饰器制作工具
- web.RouteTableDef()
| |
文章作者
上次更新 2022-03-03 (5c64003)