V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
sevenQu
V2EX  ›  Python

如果想获取 id 为(1,2,3)的用户,有没有可以一次查询数据库全部获取到的方法?

  •  
  •   sevenQu · 2018-03-25 23:27:23 +08:00 · 3778 次点击
    这是一个创建于 2436 天前的主题,其中的信息可能已经有所发展或是发生改变。

    希望告知文档位置,我看文档,是 some_object = session.query(VersionedFoo).get((5, 10))这样
    User.query.get((1,2,3,)),试了一下好像不行

    8 条回复    2018-03-26 18:05:43 +08:00
    ParadiseDS
        1
    ParadiseDS  
       2018-03-26 00:35:42 +08:00 via Android
    能用 sql 语句的话考虑一下 IN 操作符?
    WordTian
        2
    WordTian  
       2018-03-26 00:56:21 +08:00 via Android
    楼上说的对
    WordTian
        3
    WordTian  
       2018-03-26 00:58:01 +08:00 via Android
    select xxx from xxx where id in (1,2,3)
    cz5424
        4
    cz5424  
       2018-03-26 01:40:23 +08:00 via Android
    用 filter 和 or 试试,没试过 in
    banxi1988
        5
    banxi1988  
       2018-03-26 08:40:56 +08:00
    some_objects = User.query.filter( User.id.in_(1,2,3) ).all()

    我不知道你看的是什么文档,所以不知道到哪里找给你。
    另外这些是基本的操作,我也没看文档。如果你要看 Query 的用法,比如 `filter` 请查看:SQLAlchemy 的 `sqlalchemy.orm.query.Query` 类的文档说明。
    如果要看 User.id 这样的列还可以使用哪些操作。 可以看 `sqlalchemy.schema.Column` 类的相关文档说明。
    Shynoob
        6
    Shynoob  
       2018-03-26 09:16:33 +08:00
    范围查找 可以用 IN 关键字
    sevenQu
        7
    sevenQu  
    OP
       2018-03-26 09:29:00 +08:00
    vincenttone
        8
    vincenttone  
       2018-03-26 18:05:43 +08:00
    query.filter(User.name.in_(['ed', 'wendy', 'jack']))

    # works with query objects too:
    query.filter(User.name.in_(
    session.query(User.name).filter(User.name.like('%ed%'))
    ))

    文档里是有的,楼主仔细看看
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3128 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 43ms · UTC 13:56 · PVG 21:56 · LAX 05:56 · JFK 08:56
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.