消耗烧瓶数据并在制表符中显示 更新-将数据传递到表中

如何解决消耗烧瓶数据并在制表符中显示 更新-将数据传递到表中

我正在尝试显示从烧瓶终点到tabulator的以下数据 这是我的html正文。

<body>
<div style="text-align:center">
<iframe id="invisible" name="invisible" style="display:none;"></iframe>
<span class="labela successa" id="header"><b>tabledata</b></span><br>
<h3></h3>
<form target="invisible" action="http://127.0.0.1:5000/test" style="margin:10px;margin-bottom: 300px;" method="post">
 <span class="label success" id="select_d">Select custom period</span>
 
<input type="text" name="daterange" value="" />
<!-- <input type="submit" name="submit" id="btn" value="Submit"> -->
</form>

<script>
$(function() {
  $('input[name="daterange"]').daterangepicker({
    opens: 'left'
  },function(start,end,label) {
    console.log("A new date selection was made: " + start.format('YYYY-MM-DD') + ' to ' + end.format('YYYY-MM-DD'));
    var sd = start.format('YYYY-MM-DD') + " 00:00"
    var ed = end.format('YYYY-MM-DD') + " 23:59"
    console.log(sd)
    console.log(ed)
    var params = {};
    params.start = sd;
    params.end = ed;
    $.post('http://127.0.0.1:5000/test',params).done(function (data) {
    // callback
});
  });
});

</script>

<!---- Table here -start-->
<div id="example-table"></div>

<script>
 var tabledata = $("#example-table").tabulator("setData","http://127.0.0.1:5000/test");
 var table = new Tabulator("#example-table",{
  height:205,// set height of table (in CSS or here),this enables the Virtual DOM and improves render speed dramatically (can be any valid css height value)
  data:tabledata,//assign data to table
  layout:"fitColumns",//fit columns to width of table (optional)
  columns:[ //Define Table Columns
    {title:"Name",field:"name",width:150},{title:"Age",field:"age",align:"left",formatter:"progress"},{title:"Favourite Color",field:"col"},{title:"Date Of Birth",field:"dob",sorter:"date",align:"center"},],rowClick:function(e,row){ //trigger an alert message when the row is clicked
    alert("Row " + row.getData().id + " Clicked!!!!");
  },});

</script>

<!---- Table here -end-->
</body>

这是我的flask端点,它以json格式返回数据。

from flask import Flask,render_template,request,json
from flask_cors import CORS,cross_origin
from jira import JIRA
import re
app = Flask(__name__)
cors = CORS(app)

@app.route('/')
def index():

  return render_template("table.html")

@app.route('/test',methods=['GET','POST'])
def tabledata():
  start_date = request.form['start']
  end_date = request.form['end']
  options = {'server': 'abc.com','verify': False}
  jira = JIRA(options,basic_auth=('username','Password'))
  issues= jira.search_issues('project="LSDF" AND issuetype = JKL AND created >="'+start_date+'" AND created <="'+end_date+'"',maxResults=100)
  issuelist = []
  for issue_names in issues:
    issuelist.append(issue_names.key)
  print(issuelist)
  data = []
  for ticket in issuelist:
    jiraissue = jira.issue(ticket)
    data.append({'age_id': jiraissue.key,'scape':jiraissue.fields.customfield_18242[0].fields.summary,'Description': jiraissue.fields.summary,'incident_start': jiraissue.fields.customfield_14040})
  print (data)
  
  return json.dumps(data)


if __name__ == '__main__':
  app.run(debug=True)

我想将这些数据捕获到我上面在HTML正文中使用的Tabulator插件中,现在我不确定如何实现此目标,因为没有明确的说明,有人可以在这里提供帮助吗?

解决方法

Tabulators Ajax文档指定了数据返回的格式,以便Tabulator处理它。检出Documentation以获得完整的详细信息。

基本上,您的ajax响应必须返回JSON编码的行对象数组,该数组中的每个对象都代表一行数据。例如:

[
    {"id":1,"name":"bob","age":"23"},{"id":2,"name":"jim","age":"45"},{"id":3,"name":"steve","age":"32"}
]

如果您无法以该格式返回数据,则可以使用 ajaxResponse 回调处理响应并将其转换为该格式,然后再传递给桌子。

所有这些的详细信息可以在Ajax Documentation

中找到

更新-将数据传递到表中

加载数据的问题是因为在事件创建表之前您正在调用 setData 函数:

$("#example-table").tabulator("setData","http://127.0.0.1:5000/test");

此函数不返回数据,它告诉制表器去取回它,因此您上面的选项什么都不做。

如果只需要在首次加载表时加载数据,则最好的方法是不使用 setData data 属性。而是使用表构造函数对象中的 ajaxURL 属性并将URL传递给它

var table = new Tabulator("#example-table",{
    ajaxURL:"http://www.getmydata.com/now",....//other table setup options
});

所有这些的详细信息可以在使用ajax加载数据的文档的第一段中找到,请参见Ajax Documentation

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?