python - queries - sqlalchemy query
sqlalchemy, seleccione todas las filas (2)
Estoy tratando de obtener todas las filas de una tabla.
En el controlador tengo:
meta.Session.query(User).all()
El resultado es [, ]
, pero tengo 2 filas en esta tabla.
Yo uso este modelo para la mesa:
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
Y a continuación, en el mismo archivo:
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)
. . . . . . . .
Puedes importar fácilmente tu modelo y ejecutar esto:
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
Uso el siguiente fragmento de código para ver todas las filas de una tabla. Utilice una consulta para encontrar todas las filas. Los objetos devueltos son las instancias de clase. Se pueden utilizar para ver / editar los valores según sea necesario:
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()