【发布时间】:2015-08-10 19:15:40
【问题描述】:
我是 python 烧瓶开发的新手。我正在尝试实现一个服务器端处理数据表,它将从具有 1000 条记录的 mysql 数据库表中获取记录。
我希望表格每页显示 10 行,并为每个新页面或搜索查询服务器/数据库。
这是我的 HTML -
<div class="dataTable_wrkld">
<table class="table table-striped table-bordered table-hover" id="dataTables-wrkld">
<thead>
<tr>
<!--<th class="bs-checkbox-1"></th>-->
<th data-align="center">ID</th>
<th data-align="center">Name</th>
<th data-align="center">Total Items</th>
</tr>
</thead>
</table>
</div>
这是我的脚本 -
<!-- DATA TABLES -->
<script>
var table_data = ''
$(document).ready(function() {
$('#dataTables-wrkld').DataTable({
responsive: true,
processing: true,
serverSide: true,
ajax: {
url: '/datatable_change',
type: 'POST',
data: function ( args ) {
return { "args": JSON.stringify( args ) };
},
dataSrc: function (json) {
var arr = Object.keys(json).map(function(k) { return json[k] });
return arr;
},
columns: [
{"data": "ID"},
{"data": "Name"},
{"data": "Items"}
]
}
});
});
</script>
在服务器端我有 -
@app.route('/datatable_change', methods=['POST'])
def datatable_change():
abc = json.loads(request.values.get("args"))
temp = session.query(Table.id, Table.name, table.total_items).limit(100)
data = Utilities.make_json_dict(['ID', 'Name', 'Items'], temp)
print(json.dumps(data))
return json.dumps(data)
当我运行它时,会遇到断点并从数据库中获取数据。这就是我的 json 的样子 -
[
{"Items": 31, "ID": 1, "Name": "abc"},
{"Items": 35, "ID": 2, "Name": "def"},
{"Items": 38, "ID": 3, "Name": "ghi"}
.
.
.
]
我使用这个答案来格式化我的数据源 - Format ajax dats src
如果我不使用它,我会收到“无法读取未定义的属性 'length'..”Jquery 错误
运行完这一切后, 这是我得到的错误 -
点击确定后,我的数据表就是这样的 -
没有响应分页的通知。我在浏览器控制台中没有收到任何错误。 我在这里做错了什么?请帮忙。
【问题讨论】:
-
columns: [之前缺少逗号 -
编辑添加逗号;在构建问题时错过了它 - 不过,这不是问题。
-
您能否在
dataSrc中的return arr;之前添加console.log(JSON.stringify(json));并发布结果? -
得到这个 - [{"Items":31,"ID":1,"Name":"ABC"}, {"Items":35,"ID":2,"Name" :"ABC"}, {"Items":38,"ID":3,"Name":"ABC"}, {"Items":25,"ID":4,"Name":"ABC"}, {"Items":44,"ID":5,"Name":"ABC"}, {"Items":35,"ID":6,"Name":"ABC"}, {"Items":28 ,"ID":7,"Name":"ABC"}, {"Items":41,"ID":8,"Name":"ABC"}, {"Items":33,"ID":9 ,"名称":"ABC"}, {"Items":26,"ID":10,"Name":"ABC"}, {"Items":44,"ID":11,"Name":" ABC"}, ...]
标签: python twitter-bootstrap-3 flask datatables datatables-1.10