跳转到主要内容

NOT ORM hydrator

项目描述

Mayim

NOT ORM Python hydrator

什么是Mayim?

最简单的描述可能是称其为单向ORM。也就是说,它不会为您生成SQL语句。将其视为BYOQ(自带查询)。

为什么?

我并不反对ORM,事实上,它们在许多情况下都发挥着重要作用,可能是解决问题的正确工具。我只是更喜欢尽可能不使用它们。相反,我更希望控制自己的SQL语句。

然而,典型的权衡是需要更多的努力才能将SQL查询转换为对象。Mayim旨在解决这个问题。

入门

pip install mayim[postgres]
import asyncio
from typing import List
from mayim import Mayim, PostgresExecutor, sql
from dataclasses import dataclass

@dataclass
class Person:
    name: str

class PersonExecutor(PostgresExecutor):
    @sql("SELECT * FROM people LIMIT $limit OFFSET $offset")
    async def select_all_people(
        self, limit: int = 4, offset: int = 0
    ) -> List[Person]:
        ...

async def run():
    executor = PersonExecutor()
    Mayim(dsn="postgres://...")
    print(await executor.select_all_people())


asyncio.run(run())

文档

文档: ahopkins.github.io/mayim

框架支持

开箱即用,Mayim附带对Quart、Sanic和Starlette应用程序的支持扩展。有关更多信息,请参阅文档。

项目详情


下载文件

下载您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源分布

mayim-1.1.0.tar.gz (20.7 kB 查看哈希值)

上传于 来源

构建的发行版

mayim-1.1.0-py3-none-any.whl (30.3 kB 查看哈希值)

上传于 Python 3

支持