gpt4 book ai didi

python - 使用 Flask-SQLAlchemy 查询

转载 作者:太空宇宙 更新时间:2023-11-04 03:43:10 24 4
gpt4 key购买 nike

我正在使用 Flask 构建 RESTful api 并使用 SQLAlchemy 将我的应用程序连接到 MySQL 数据库。

我在数据库中有两个模型:Order 和 Order_line。一个订单由多个订单行组成。每个订单行都有一个关联的状态。

我在将 SQL 请求转换为 Flask-SQLAlchemy 语句时遇到问题。加入特别困扰我。

这是我的模型:

class Order(db.Model):
id = db.Column(db.Integer, primary_key=True)
date_created = db.Column(db.DateTime)
lines = db.relationship('Order_line',
backref=db.backref('order',
lazy='join'))
def __init__(self, po):
self.date_created = datetime.datetime.now()

class Order_line(db.Model):
id = db.Column(db.Integer, primary_key=True)
order_id = db.Column(db.Integer, db.ForeignKey('order.id'))
status_id = db.Column(db.Integer, db.ForeignKey('status.id'))

def __init__(self, order_id):
self.order_id = order_id
self.status_id = 1

class Status(db.Model):
id = db.Column(db.Integer, primary_key=True)
short_name = db.Column(db.String(60))
description = db.Column(db.String(400))
lines = db.relationship('Order_line',
backref=db.backref('status',
lazy='join'))

def __init__(self, short_name, description):
self.short_name = short_name
self.description = description

基本上,我想检索所有具有一个或多个 order_line 的 status_id 不同于 1 的订单(因此检索 Order.id)。

SQL 查询将是

SELECT id FROM `order`
INNER JOIN order_line
ON order.id=order_line.order_id
WHERE
order_line.status_id NOT LIKE 1
GROUP BY
order.id

我没有找到将该 SQL 语句转换为 SQLAlchemy 命令的方法。我对 Flask-SQLAlchemy 包装器和“ Vanilla ”SQLAlchemy 之间的区别特别困惑。

最佳答案

您可以使用 .any() :

Order.query.filter(Order.lines.any(Order_line.status_id != 1))

关于python - 使用 Flask-SQLAlchemy 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25332972/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com