实战Flask+BootstrapTable最简动态表头及数据(ajax方法)

话不多说,有图有源码

1.实现原理:通过ajax从后端获取表头及数据

前端页面内容

复制代码
<!DOCTYPE html>
{% from "common/_macro.html" import static %}
<html>
<meta charset="utf-8">
<head>
<!-- 引入bootstrap样式 -->
<link rel="stylesheet" href="/static/bootstrap/css/bootstrap.min.css" />
<!-- 引入bootstrap-table样式 -->
<link rel="stylesheet" href="/static/bootstrap-table-develop/bootstrap-table.min.css" />
<!-- layer -->
<link rel="stylesheet" href="/static/layer/2.4/skin/layer.css" />
<!-- jquery -->
<script type="text/javascript" src="/static/js/jquery-2.2.0.min.js" ></script>
<!-- bootstrap -->
<script type="text/javascript" src="/static/bootstrap/js/bootstrap.min.js" ></script>
<!-- bootstrap-table -->
<script type="text/javascript" src="/static/bootstrap-table-develop/bootstrap-table.min.js" ></script>
<!-- 引入中文语言包 -->
<script type="text/javascript" src="/static/bootstrap-table-develop/locale/bootstrap-table-zh-CN.min.js" ></script>
<!-- layer -->
<script type="text/javascript" src="/static/layer/2.4/layer.js" ></script>

</head>
<body class="gray-bg">
	<div class="wrapper wrapper-content ">
		<div class="col-sm-12">
			<div class="ibox">
				<div class="ibox-body">
					<table id="exampleTable"></table>
					<button type="button" id="butSave" class="btn btn-primary col-sm-1 col-sm-offset-5" onclick="save()">保存</button>
				</div>
			</div>
		</div>
	</div>
	<div ></div>
</body>
</html>
<script>
$(function() {
	var $table = $('#exampleTable');
	var loadData = [];
	var tableColumns = [];
	initTable();
	ajaxTable('/helloeditrowssave/ajaxlist');

	function initTable() {
		$table.bootstrapTable({
			toolbar: '#toolbar',
			clickEdit: true,
			showToggle: true,
			pagination: true,       //显示分页条
			showColumns: true,
			showPaginationSwitch: true,     //显示切换分页按钮
			showRefresh: true,      //显示刷新按钮
			columns: tableColumns
		});
	}

    function ajaxTable(url){
		//debugger;
		$.ajax({
			url: url,//"/helloeditrowssave/list",
			type: "GET",
			dataType: "json",
			success: function(rs){
				console.log(rs)
				loadData = rs.data.rows;
				tableColumns = rs.data.columns;
				$table.bootstrapTable('refreshOptions',
				{
					columns: tableColumns,
					data: loadData,
				});
			},
			error: function(rs){
				console.log(rs)
			}
		});
	}
});

后端代码

复制代码
@app.route('/helloeditrowssave/ajaxlist', methods=['GET','POST'])
def helloeditrowssave_ajaxlist():
    # 将后端数据转换为JSON格式
    columns = [{'checkbox': True}, {'field': 'id','title': 'Item ID'}, {'field': 'name1','title': 'Item Name'}, {'field': 'price','title': 'Item Price'}, ]
    datas = [{ "id": 11, "name1": "gtj", "price": "¥11" },
             { "id": 22, "name1": "Ewangda", "price": "¥22" },
             { "id": 31, "name1": "小柘服务", "price": "¥32" }] #[{'customerName':"gtj"},{'customerName':"gtj1"}] #[{'id': user.id, 'name': user.name, 'email': user.email} for user in users]
    json_data = jsonify(datas)
    data = {
        'columns' : columns,
        'rows' : datas
    }
    totalNum = 3
    return restful.success(data=data)

2.结果图片

相关推荐
和我乘风破浪14 分钟前
iOS自动化录屏在Chrome浏览器打不开处理方法
python·测试
站大爷IP34 分钟前
当生成器遇上异步IO:Python并发编程的十大实战兵法
python
大明者省1 小时前
pycharm2020.2版本给项目选择了虚拟环境解释器,项目文件都运行正常,为什么terminal文件路径的前面没有虚拟解释器的名称
开发语言·python
love530love1 小时前
MSYS2 环境下 Python 开发配置(结合 PyCharm)使用笔记
人工智能·windows·笔记·python·pycharm·virtualenv·uv
站大爷IP1 小时前
用Python 3+Qt打造你的第一个对话框:从零开始的手把手教程
python
胖墩会武术1 小时前
OpenAI API调用教程
python·openai·api
哪 吒1 小时前
突破亚马逊壁垒,Web Unlocker API 助您轻松获取数据
前端·网络·python·网络安全
代码老y2 小时前
爬虫技术:数据挖掘的深度探索与实践应用
人工智能·爬虫·python·数据挖掘
大模型铲屎官2 小时前
【深度学习-Day 29】PyTorch模型持久化指南:从保存到部署的第一步
人工智能·pytorch·python·深度学习·机器学习·大模型·llm
@小红花2 小时前
Python从入门到精通
开发语言·python