gpt4 book ai didi

sqlalchemy 关系和关系查询

转载 作者:行者123 更新时间:2023-12-03 21:00:29 25 4
gpt4 key购买 nike

假设我在 sqlalchemy 中有 3 个表。以声明方式定义的用户、角色和用户角色。如何建议做这样的事情:

user = Users.query.get(1) # get user with id = 1
user_roles = user.roles.query.limit(10).all()

目前,如果我想获得用户角色,我必须查询 3 个表中的任何一个并执行连接以获得预期的结果。直接调用 user.roles 会带来一个我无法过滤或限制的项目列表,所以它不是很有帮助。加入事物也不是很有帮助,因为我正在尝试使用以下请求制作休息界面: localhost/users/1/roles 所以仅仅通过那个查询,我需要能够做 Users.query.get(1).roles.limit(10) etc etc 这真的应该“智能”我的休息界面,而没有太多臃肿的代码和 if 条件,而且不必知道要加入哪个表。用户模型已经具有作为关系属性的角色,那么为什么我不能像使用普通模型那样简单地查询关系属性呢?

最佳答案

只需使用 Dynamic Relationship Loaders 。上面链接的文档中的逐字代码如下:

class User(Base):
__tablename__ = 'user'

posts = relationship(Post, lazy="dynamic")

jack = session.query(User).get(id)

# filter Jack's blog posts
posts = jack.posts.filter(Post.headline=='this is a post')

# apply array slices
posts = jack.posts[5:20]

关于sqlalchemy 关系和关系查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11060099/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com