如何使端点更快地加载?

时间:2019-04-29 09:27:24

标签: python flask couchbase couchbase-view

我是不熟悉Couchbase的人,也许不熟悉前端编程。我有一段代码,它创建了ouchbase数据库的对象,然后从数据库中获取视图。问题在于它从数据库拥有的时间开始就获取所有数据。 我的重点是使其速度更快,以便在现场更快地显示出来。 这是代码段

=IF((A1<>""),((TODAY()-A1-SUMPRODUCT(-(WEEKDAY(ROW(INDIRECT(A1&":"&B1)))=5)) -SUMPRODUCT(--(WEEKDAY(ROW(INDIRECT(A1&":"&B1)))=6)))),"NO VALUE")

因此,一旦沙发床获取所有视图并显示它,则需要30-40秒..这是巨大的,因为它可以渲染温度

1 个答案:

答案 0 :(得分:1)

使用分页来小批量呈现数据,根据您的要求决定页面大小,以便您有足够的数据可在第一次调用时在UI上处理/显示,并进行后续调用以使用next_page_url根据请求获取更多数据

Flask-SQLAlchemy通过paginate()查询方法本地支持分页

可以对Flask-SQLAlchemy中的任何查询对象调用paginate方法。它包含三个参数:

  1. 页码,从1开始
  2. 每页的项目数
  3. 错误标志。如果为True,则当请求超出范围的页面时,将出现404错误 自动返回给客户端。如果为False,则超出范围的页面将返回一个空列表。

从分页返回的值是一个分页对象。该对象的items属性包含请求的页面中的项目列表。

下面是使用分页更新的代码。

@app.route("/all-schools-schedule/christmas-past", methods=['GET'])
def past_school_schedules():
    # this creates couchbase object
    cb = get_db().paginate(
        page, POSTS_PER_PAGE, False)
        return render_template('school_schedule.html', past=cb.items)

希望这会有所帮助!