Nouveau développement Web Flask: j'essaie d'interroger une base de données MySQL en utilisant SQLAlchemy comme ORM dans une application Flask.Objet BaseQuery non appelable dans une application Flask à l'aide de SQLAlchemy
Chaque fois qu'il y a une requête GET, un score est généré à partir d'une fonction python et un score total (c'est-à-dire la somme des points de colonne) est renvoyé dans JSON au modèle.
je reçois un « TypeError: objet « BaseQuery » est pas appelable » lorsque vous utilisez somme func comme ceci:
all_points = [Play.query(func.sum(Play.points))]
Lorsque je tente l'aide d'un .get() il est deplaying quelque chose branché dans le modèle (c.-à- objet objet], objet [objet]), mais au moins il retourne quelque chose:
all_points = [Play.query.get(1)]
Je ne sais pas quel est mon erreur: la requête est mauvaise ou la façon dont j'ajouter l'objet à la base de données incorrecte?
// modèle db
class Play(db.Model):
__tablename__ = "scoring"
rounds = db.Column(db.Integer, primary_key=True)
points = db.Column(db.Integer)
def __init__(self, points):
self.points = points
// schéma Guimauve:
class PlaySchema(ma.Schema):
class Meta:
fields = ('rounds','points')
play_schema = PlaySchema()
plays_schema = PlaySchema(many=True,only=('rounds', 'points'))
// score est de retour de cette fonction:
score = dice_score(d1,d2,d3,d4,d5)
// pour chaque requête GET entrée à la db comme:
db.create_all()
round_score = Play(score)
db.session.add(round_score)
db.session.commit()
// requête problématique:
all_points = [Play.query(func.sum(Play.points))]
// finalement le résultat est transmis au modèle avec vidage (guimauve):
dump_score = plays_schema.dump(all_points)
return render_template('main.html',data_get=data_get)