【问题标题】:jQuery-brackets: How to save to python/sqlite3?jQuery-brackets:如何保存到 python/sqlite3?
【发布时间】:2021-12-22 02:58:43
【问题描述】:

我正在尝试为我的 web 应用程序做一个锦标赛括号,到目前为止我正在使用 jQuery-brackets 库:http://www.aropupu.fi/bracket/

虽然我在 python 世界中找不到类似 jquery-bracket 的东西,但我对 javascript 完全不熟悉。

我正在使用保存功能的演示代码:

var saveData = {
  teams: [
    ["Team 1", "Team 2"],
    ["Team 3", null],
    ["Team 4", null],
    ["Team 5", null]
  ],
  results: [
      [
        [[1, 0], [null, null], [null, null], [null, null]],
        [[null, null], [1, 4]],
        [[null, null], [null, null]]
      ]
  ]
};
 
/* Called whenever bracket is modified
 *
 * data:     changed bracket object in format given to init
 * userData: optional data given when bracket is created.
 */
function saveFn(data, userData) {
  var json = jQuery.toJSON(data)
  $('#saveOutput').text('POST '+userData+' '+json)
  /* You probably want to do something like this
  jQuery.ajax("rest/"+userData, {contentType: 'application/json',
                                dataType: 'json',
                                type: 'post',
                                data: json})
  */
}
 
$(function() {
    var container = $('div#save .demo')
    container.bracket({
      init: saveData,
      save: saveFn,
      userData: "http://myapi"})
 
    /* You can also inquiry the current data */
    var data = container.bracket('data')
    $('#dataOutput').text(jQuery.toJSON(data))
  })

我想将 saveData 作为 POST 传递给 python 以将其写入我的 sqlite3 数据库。但是我连几行js代码都看不懂。

  1. 他的注释说:“每当括号被修改时调用。”我猜他的意思是每当在 webapp 括号中编辑某些内容时,就会调用函数 saveFn(data, userData)。正确的?所以我尝试了:

JS:

function saveFn(data, userData) {
      var json = jQuery.toJSON(data)
      $('#saveOutput').text('POST '+userData+' '+json)
      $.post( "/update", {
        javascript_data: data 
        });

py:

@app.route('/update',methods=["POST","GET"])
def update():
    if request.method == 'POST':
        data = request.form['javascript_data']
        print(data)
    return jsonify('Successfully called')

但是什么都没有发生,感觉就像我误解了括号改变时所调用的内容。我认为一旦我在 webapp 中更改括号数据时将数据获取到 python,我就可以自己在 py 和 sqlite 中继续。

  1. Dev 还提到:

附加参数。需要提供保存回调。

disableToolbar: boolean hides the toolbar that allows resizing the bracket and changing its type
disableTeamEdit: boolean disallows editing teams, allows still editing scores. You must ALSO disable the toolbar (as incresing bracket size would add BYE teams, thus "editing teams")

我想添加这个,但我不知道将参数放在哪里以禁用工具栏,我也不明白“需要给出保存回调”是什么意思。

非常感谢帮助,我被困在这几天,挖掘了几个 js 教程,多次尝试和错误,感觉我错过了一些非常重要的事情或查看错误的代码来自定义.

【问题讨论】:

    标签: javascript python jquery ajax


    【解决方案1】:

    我真的开始讨厌 JS/JSON/jQuery 作为菜鸟,但后来我发现了问题:在 chrome 的开发人员工具中,我得到了找不到 jQuery.toJSON() 的信息!当然,之后什么都不会发生!将其替换为 JSON.stringify() 此外,要禁用工具栏 (q2),您只需将“disableToolbar:true”放在“init:saveData”所在的位置旁边

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-03-08
      • 2018-03-27
      • 1970-01-01
      • 2021-09-14
      • 2011-01-03
      • 2021-11-21
      • 1970-01-01
      相关资源
      最近更新 更多