Flask查询加入

Flask query join

我的数据库有两个 table:

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')

我想获取包含 Meals.title 和 Category.title

的查询

例如: 用餐 table

Burger_Grand_Canyon  1
Fresh_roll_with_chicken 1
Pizza_Margarita_classic 2

类别Table

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)