【发布时间】:2018-06-28 07:37:10
【问题描述】:
我有一个 api 端点,它传递一个用于在数据库中进行调用的变量。由于某种原因,它无法运行查询,但语法正确。我的代码如下。
@app.route('/api/update/<lastqnid>')
def check_new_entries(lastqnid):
result = Trades.query.filter_by(id=lastqnid).first()
new_entries = Trades.query.filter(Trades.time_recorded > result.time_recorded).all()
id 字段为:
id = db.Column(db.String,default=lambda: str(uuid4().hex), primary_key=True)
我尝试了filter 而不是filter_by,但它不起作用。当我删除 filter_by(id=lastqnid) 时,它可以工作。它没有运行查询的原因可能是什么?
正在查询的交易表是
class Trades(db.Model):
id = db.Column(db.String,default=lambda: str(uuid4().hex), primary_key=True)
amount = db.Column(db.Integer, unique=False)
time_recorded = db.Column(db.DateTime, unique=False)
【问题讨论】:
-
您正在展示导致错误的原因,但我们没有看到与错误相关的代码。什么是
time_recorded,它在哪里使用? -
如果您在执行
result.time_recorded之类的操作而不检查您是否真的找到任何东西,例如if result == None,它很可能会产生此错误。不过,我只是根据您提供的信息假设... -
添加了我正在查询的表
-
请找到产生错误的行。
-
错误来自 new_entries = Trades.query.filter(Trades.time_recorded > result.time_recorded).all()
标签: python flask sqlalchemy flask-sqlalchemy