在特定时间间隔(10 秒)后使用 Flask 从不断增加的数据库(如 mysql)中获取数据

克苏拉夫达斯

我想使用 python 和烧瓶创建一个 api,它以固定的时间间隔(10 秒)从不断增加的数据库中获取数据,其中数据不断传入和存储。我不想获取已经获取的旧数据。

杜贝

假设您当前有一个 API 端点,它返回所有数据库存储的数据:

@app.route('/data', methods=['post'])
def data():
    all_the_data = Data.query.order_by(Data.created.desc()).all()
    return jsonify(results=all_the_data)

因此,您的 ajax 调用目前正在执行以下操作:

$.ajax({
    type: "POST",
    url: "/data",
    dataType: "json",
    success: function(data) { 
        console.log(data);
        update_graph(data);
    }
});

你只需要一种方法让系统过滤掉出去的东西,回到客户端——所以我们不是查询所有数据,我们可以根据参考进行过滤:

@app.route('/data', methods=['post'])
def data():
    client_data = request.json
    reference = client_data.get('reference')

    if reference:
        # we have a reference, so lets filter the query:
        query_data = Data.query.filter(Data.id>reference).order_by(Data.created.desc()).all()
    else:
        # no reference, so send the lot!
        query_data = Data.query.order_by(Data.created.desc()).all()

    return jsonify(results=query_data)

然后,您的 ajax 请求需要从它执行的最后一个查询中获取最后一个引用——并将其提供给 API 端点:

$.ajax({
    type: "POST",
    url: "/data",
    data: JSON.stringify({ reference: 999 }),
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function(data) {
       console.log(data)
       update_graph(data["results"]);
    }
});

因此,您只需要弄清楚如何reference从您收到的最后一组值中获取该值(API 可以将其作为另一个键发送回来,或者您可以在 javascript 中轮询当前设置等)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用pdo fetch从mysql数据库中获取特定值?

无法使用Flask从MySQL数据库将数据检索到html中

在ASP.NET中配置数据库的行以在特定时间后删除的最佳方法

在特定时间间隔后更改“ body”标签中的“ background-image”

在特定时间(例如10分钟后)之后,如何更新Firebase数据库中的值?

数据在特定时间间隔内通过

在MySQL数据库中获取4行后如何回显特定内容

特定时间间隔的时间索引上的平均熊猫数据帧

从UI获取数据并使用Flask从mysql生成Mysql查询

使用Flask(Python)从MySQL数据库中获取“某些”数据

如何使用Flask从Postgresql数据库中获取数据并显示HTML表

在特定时间间隔后如何显示react.js中的每个数组对象?

SQLite:在特定时间间隔内对数据进行分组

使用pyMongo在Flask中获取MongoDB数据

在一定时间间隔后,如何在jquery中重复调用特定的URL?

Flask和Python如何使搜索引擎获取mysql数据库中的数据

在特定时间间隔后删除php / javascript中的警报栏

在特定时间间隔后在Firefox中删除Cookie

在PHP中使用for循环在特定时间间隔后如何获取增量值?

在特定时间间隔内避免重复数据

Mysql具有设置超时功能,While循环以特定时间间隔获取数据

以 10 秒的间隔写入数据库

如何从数据框中绘制行的特定时间间隔?

mysql 数据库中的数据类型时间,使用 cakephp 获取

如何在Django中的特定时间后自动从数据库中删除记录

如何使用 sqlalchemy 从 Flask 中的 SQlite 数据库中获取(检索)数据

使用 Pandas 的重采样功能后,如何选择特定时间间隔的数据?

如何使用 Flask/python 在特定时间间隔记录物联网数据

ANYLOGIC - 在特定时间间隔的日志中剪切数据