Flask查询连接



我有两个表的数据库:

class Meals(db.Model):
__tablename__ = 'meals'
id = db.Column(db.Integer, primary_key=True)
title = db.Column(db.String, unique=True)
price = db.Column(db.Float)
description = db.Column(db.String, unique=True)
picture = db.Column(db.String, unique=True)
category = db.relationship("Category")
category_id = db.Column(db.Integer, db.ForeignKey('categories.id'))

class Category(db.Model):
__tablename__ = 'categories'
id = db.Column(db.Integer, primary_key=True)
title = db.Column(db.String, unique=True)
meals = db.relationship("Meals", back_populates='category')

我想获得包含膳食的查询。title和Category.title

例如:餐表

Burger_Grand_Canyon  1
Fresh_roll_with_chicken 1
Pizza_Margarita_classic 2

类别表

Burgers 1
Pizzas 2
结果

Burger_Grand_Canyon  Burgers
Fresh_roll_with_chicken Burgers
Pizza_Margarita_classic Pizzas

我试着这样做:

dishes = db.session.query(Meals).join(Category).all()
print(dishes)
for dish in dishes:
print(dish.title)

我该如何解决这个问题?

查询结果应该为您提供分配给dishes变量的Dish记录列表。Dish的每个实例应该能够通过dish.category字段引用其链接的Category实例。

换句话说,它应该是这样的:

dishes = db.session.query(Meals).join(Category).all()
for dish in dishes:
print(dish.title, dish.category.title)

最新更新