【问题标题】:How to load data for each pagination of the data table如何为数据表的每个分页加载数据
【发布时间】:2015-07-25 05:45:21
【问题描述】:

我有一个包含数千行的数据库表,并且正在开发一个 crud 管理网络应用程序。我正在使用数据表来显示所有行(查看全部)。当我使用数据表加载所有行时,加载页面需要大约 30 秒。我想使用 ajax 分页来避免它。

Python 代码:

我的用于从表中获取所有行的 python 函数如下所示

 @companies.route('/list', methods=['GET'])
 @requires_session_auth
 def company_list():
    try:
       all_companies = Company.query.all()
       return render_template('company_list.html', company=all_companies)
    except:
    logger.exception('Error rendering Company list.')


 return redirect(url_for('index'))

HTML代码:

 {% extends "base.html" %}
 {% block subtitle %}Companies{% endblock %}
 {% block content %}

 <h2>Companies</h2>

 <table id="datatable" class="display" cellspacing="0" width="100%">
   <thead>
    <tr>
        <th align="center">Actions</th>
        <th align="left">ID</th>
        <th align="left">Label</th>
        <th align="left">Company Name</th>
    </tr>
   </thead>
   <tbody>
     {% for image in images %}
     <tr>
       <td nowrap align="center">
        <a href="">Edit</a>
            &nbsp;&nbsp;
         <a href="" class="del_link">Delete</a>
          </td>
          <td nowrap align="left">{{ company.id }}</td>
          <td nowrap align="left">{{ company.label }}</td>
          <td nowrap align="left">{{ company.companyname }}</td>
         </tr>
       {% endfor %}
    </tbody>
   </table>
  {% endblock %}
  {% block afterbody %}
  <script>
      $(document).ready(function () {
      $('#datatable').dataTable({
         stateSave: true
       });
   </script>
  {% endblock %}

如何创建一个 python 函数来加载数据表上的前 10 行并单击分页按钮(第 2 页)它应该从 db 表中加载接下来的十个数据。如何在 html 中创建 python 函数和数据表。这是 php 中的示例分页 https://datatables.net/examples/server_side/simple.html

【问题讨论】:

  • 查看数据表 ajax api 的文档:docs。在 Flask 中,您必须添加类似 SQLAlchemy 的 paginate 函数:docs

标签: jquery python datatable pagination flask-sqlalchemy


【解决方案1】:

你看过这个项目https://github.com/Pegase745/sqlalchemy-datatables/tree/master/examples/flask_tut吗?这可能会有所帮助。

您只需要运行pip install sqlalchemy-datatables

【讨论】:

    猜你喜欢
    • 2021-06-04
    • 1970-01-01
    • 1970-01-01
    • 2020-03-02
    • 1970-01-01
    • 2022-11-03
    • 1970-01-01
    • 2018-12-04
    • 2023-04-03
    相关资源
    最近更新 更多