Comment puis-je sélectionner toutes les lignes avec sqlalchemy?

Je suis en train d'essayer d'obtenir toutes les lignes d'une table.

Dans le contrôleur, j'ai:

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

Le résultat est [, ], mais j'ai 2 lignes dans cette table.

- Je utiliser ce modèle pour le tableau:

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

Et à côté, dans le même fichier:

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)
  • Il n'y a pas suffisamment d'informations pour reproduire votre problème. Qu'est-ce que [, ]? Il n'est pas valide expression python, mais s'apparente plutôt à de l'impression d'une liste de deux éléments [<User instance at ...>, <User instance at ...>] sur le code HTML sans bien s'y soustraire.
  • Pour résoudre ce que vous pouvez from flask import Markup et puis return Markup("%r") % User.query.all().
InformationsquelleAutor gummmibear | 2010-04-13