跳转到主要内容

另一个异步SQL库。

项目描述

AsyncSQL

AsyncSQL旨在提供使用aiohttp执行PostgreSQL请求的简单高效方式。

安装

作为Python库,AsyncSQL可以按以下方式安装:

(venv)$ pip install asyncsql

设置

要连接到PostgreSQL,通常应使用环境变量。

例如,在开发时可以使用以下值:

$ export PGHOST=172.19.0.2  # depends on which IP postgres container is using
$ export PGDATABASE=asyncsql
$ export PGUSER=postgres
$ export PGPASSWORD=xxx

默认情况下,数据列表是分页的。页面大小可以指定如下:

$ export ASYNCSQL_PER_PAGE=25  # default: 50

包含.sql文件的文件夹可以指定如下:

$ export ASYNCSQL_SQL_DIR=./tests/data  # default: ./sql_files

迁移

为了简化数据库设置,AsyncSQL提供了一个简单的migrate命令。

例如,我们可以按以下方式加载测试数据:

(venv)$ python -m asyncsql.migrate -d ./tests/data jobs  # file-2 file-3
jobs... ok

这里没有魔法子弹,文件顺序很重要,以及幂等性。

用法

让我们在我们的jobs测试表上执行一些查询。

首先,我们需要在我们的Python代码中定义一个Model对象来与之一起工作

from datetime import datetime
from typing import Optional
from uuid import UUID

from asyncsql.models import Model

class Job(Model):
    id: Optional[UUID] = None
    enabled: bool = False
    func: str
    name: str
    created_at: Optional[datetime] = None
    updated_at: Optional[datetime] = None

然后我们需要一个Queries实例

from asyncsql.queries import Queries

jobs_queries = Queries(
    "jobs",
    model_cls=Job,
    order_fields=("name",)
)

让我们按以下方式连接

import asyncio
from asyncsql.backends import sql_backend

conn = await sql_backend.conn

由于数据库为空,简单的