如何使用Flask / SQLAlchemy为Google Charts API查询特定的SQL

时间:2018-03-06 21:23:44

标签: sql flask google-api sqlalchemy flask-sqlalchemy

我将日期时间和温度值保存到数据库中,我正在尝试获取最后一个温度和日期时间值。

我尝试使用以下链接中描述的代码:

How to get last record

并写了这个:

    query1 = db.session.query.order_by(temperaturelog.dTime.desc()).first()
    query2 = db.session.query.order_by(temperaturelog.Temperature.desc()).first()
    data.append(query1)
    data.append(query2)
    return data

然而,我遇到了错误,例如:

NameError: name 'session' is not defined

我是否需要更换'会话'用别的东西?我尝试使用创建SQLAlchemy(app)时使用的变量,并尝试将其替换为温度日志数据库的类名。

所有帮助表示赞赏,

感谢。

1 个答案:

答案 0 :(得分:0)

首先,不可能看看override var prefersStatusBarHidden: Bool { return false } 的来源。在您的示例中,您将会话称为名为NameError的对象的属性。如果此上下文中不存在db,则会引发session,而不是AttributeError。在NameError定义之前,NameError很可能是以不合格的方式在模块中调用session

其次,您的查询与链接问题中的查询不同,因为您不查询任何对象。

在Flask-SQLAlchemy中,您可以在模型本身上查询附加到会话的对象。例如,如果我有一个名为Temperature的类并且它是一个Flask-SQLAlchemy检测对象,则可以直接查询该类,例如Temperature.query.all()。然后,可以从Temperature对象的__tablename__属性推断出需要查询的表。

在您的示例中,您似乎正在查询会话,这很好,但session.query并非特定于任何模型。在这种情况下,您需要调用session.query并向其传递代表您希望其从中获取数据的表格的模型,例如session.query(Temperature).all()是有效的查询。