首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用sqlalchemy选择所有行?

如何使用sqlalchemy选择所有行?
EN

Stack Overflow用户
提问于 2010-04-14 05:09:02
回答 2查看 140.7K关注 0票数 52

我正在尝试从一个表中获取所有行。

在控制器中,我有:

meta.Session.query(User).all()

结果是[, ],但是我在这个表中有2行。

我将此模型用于该表:

import hashlib
import sqlalchemy as sa
from sqlalchemy import orm

from allsun.model import meta

t_user =  sa.Table("users",meta.metadata,autoload=True)

class Duplicat(Exception):
    pass
class LoginExistsException(Exception):
    pass
class EmailExistsException(Exception):
    pass

接下来,在同一个文件中:

class User(object):
    def loginExists(self):
        try:
            meta.Session
                .query(User)
                .filter(User.login==self.login)
                .one()
        except orm.exc.NoResultFound:
            pass
        else:
            raise LoginExistsException()

    def emailExists(self):
        try:
            meta
                .Session
                .query(User)
                .filter(User.email==self.email)
                .one()
        except orm.exc.NoResultFound:
            pass
        else:
            raise EmailExistsException()


    def save(self):
        meta.Session.begin()
        meta.Session.save(self)
        try:
            meta.Session.commit()
        except sa.exc.IntegrityError:
            raise Duplicat()

orm.mapper(User, t_user)
EN

回答 2

Stack Overflow用户

发布于 2014-10-06 21:36:16

您可以轻松导入模型并运行以下命令:

from models import User

# User is the name of table that has a column name
users = User.query.all()

for user in users:
    print user.name
票数 95
EN

Stack Overflow用户

发布于 2018-06-07 08:29:41

我使用以下代码片段来查看表中的所有行。使用查询查找所有行。返回的对象是类实例。它们可用于根据需要查看/编辑值:

from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import create_engine, Sequence
from sqlalchemy import String, Integer, Float, Boolean, Column
from sqlalchemy.orm import sessionmaker

Base = declarative_base()

class MyTable(Base):
    __tablename__ = 'MyTable'
    id = Column(Integer, Sequence('user_id_seq'), primary_key=True)
    some_col = Column(String(500))

    def __init__(self, some_col):
        self.some_col = some_col

engine = create_engine('sqlite:///sqllight.db', echo=True)
Session = sessionmaker(bind=engine)
session = Session()

for class_instance in session.query(MyTable).all():
    print(vars(class_instance))

session.close()
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2633218

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档