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 puisreturn Markup("%r") % User.query.all()
.
Vous devez vous connecter pour publier un commentaire.
Vous pouvez facilement importer votre modèle et exécuter ceci:
J'utilise le code suivant pour afficher toutes les lignes dans une table. Utiliser une requête pour trouver toutes les lignes. Les objets retournés sont les instances de classe. Ils peuvent être utilisés pour afficher/modifier les valeurs requises: