Asyncio DynamoDB客户端
项目描述
AsyncIO DynamoDB
异步Pythonic DynamoDB客户端;比aiobotocore/boto3/botocore
快2倍。
快速开始
使用httpx
安装此库
pip install "aiodynamo[httpx]"
或者,对于poetry用户 poetry add aiodynamo -E httpx
连接到DynamoDB
from aiodynamo.client import Client
from aiodynamo.credentials import Credentials
from aiodynamo.http.httpx import HTTPX
from httpx import AsyncClient
async def main():
async with AsyncClient() as h:
client = Client(HTTPX(h), Credentials.auto(), "us-east-1")
使用aiohttp
安装此库
pip install "aiodynamo[aiohttp]"
或者,对于poetry用户 poetry add aiodynamo -E aiohttp
连接到DynamoDB
from aiodynamo.client import Client
from aiodynamo.credentials import Credentials
from aiodynamo.http.aiohttp import AIOHTTP
from aiohttp import ClientSession
async def main():
async with ClientSession() as session:
client = Client(AIOHTTP(session), Credentials.auto(), "us-east-1")
API使用
from aiodynamo.client import Client
from aiodynamo.expressions import F
from aiodynamo.models import Throughput, KeySchema, KeySpec, KeyType
async def main(client: Client):
table = client.table("my-table")
# Create table if it doesn't exist
if not await table.exists():
await table.create(
Throughput(read=10, write=10),
KeySchema(hash_key=KeySpec("key", KeyType.string)),
)
# Create or override an item
await table.put_item({"key": "my-item", "value": 1})
# Get an item
item = await table.get_item({"key": "my-item"})
print(item)
# Update an item, if it exists.
await table.update_item(
{"key": "my-item"}, F("value").add(1), condition=F("key").exists()
)
为什么选择aiodynamo
- boto3和botocore是同步的。aiodynamo是为异步应用程序构建的。
- aiodynamo非常快。查询或扫描等操作比aiobotocore、botocore或boto3快两倍。
- aiobotocore非常底层。aiodynamo提供了一个使用现代Python功能的Pythonic API。例如,分页API使用异步迭代器自动取消分页。
- 可读的源代码。botocore及其衍生库在运行时生成其接口,因此无法检查且未进行类型化。aiodynamo是您可以阅读、检查和理解的逐行编写代码。
- 可插拔的HTTP客户端。如果您已经在项目中使用异步HTTP客户端,则可以与aiodynamo一起使用,无需添加额外依赖项或遇到依赖项解析问题。
项目详情
下载文件
下载您平台上的文件。如果您不确定选择哪个,请了解更多关于安装软件包的信息。
源代码分发
aiodynamo-24.7.tar.gz (25.4 kB 查看散列值)
构建分发
aiodynamo-24.7-py3-none-any.whl (28.7 kB 查看散列值)
关闭
aiodynamo-24.7.tar.gz的散列值
算法 | 散列摘要 | |
---|---|---|
SHA256 | 6b34c1505a4aca372d60d140b9cbe7934650d1daa360e55a1e090d86af871dbb |
|
MD5 | ea028a8ae694540d68993e5b115dcf11 |
|
BLAKE2b-256 | 2a31c455ae437c1ed5a9e354e5aca2b616599fd0f9c36064529cecb40663a368 |