from attrs import define
from sqlalchemy.orm import (
registry,
)
from sqlalchemy.sql import (
schema,
sqltypes,
)
@define(slots=False)
class Cat():
id: int
name: str
mapper_registry = registry()
cat_table = schema.Table(
"cat",
mapper_registry.metadata,
schema.Column("id", sqltypes.Integer, primary_key=True),
schema.Column("name", sqltypes.String, nullable=False),
)
mapper_registry.map_imperatively(models.Cat, cat_table)
async def main() -> None:
...
model = Cat(1, "Meow")
async with session_maker() as session:
await session.add(model) # Ok
await session.commit()
result = await session.scalar(cat_table.select())
print(result) # 1
print(type(result)) # int
session.scalar
返回int
,而不是Cat
它看起来像它与查询:https://github.com/cosmicpython/code/blob/master/src/allocation/adapters/repository.py#L48
我尝试通过scalars
获取对象,但需要自己构造
我做错什么了吗?还是就应该这样?
1条答案
按热度按时间3qpi33ja1#
我认为你想要:
其他一些例子: