如何将 JavaScript 变量传递给 Flask?

问题描述 投票:0回答:1

我对 JavaScript 还比较陌生。我在 Flask 中有一个函数想要调用,但它需要只能在 JavaScript 中定义的参数。

var socket = io();
socket.connect('http://127.0.0.1:5000/');
socket.on('connect', function() {
    console.log('connected')
});

function createSpan() {
    var c = 1
    for (let i of document.getElementsByTagName('li')) {
        var span = document.createElement('span');
        span.id = 'outlineSpan'
        var clonedLI = i.cloneNode(true);
        span.appendChild(clonedLI);
        console.log(i.innerHTML)
        var genNotesBtn = document.createElement('button');
        genNotesBtn.className = 'genNotesBtn';
        genNotesBtn.id = 'genNotesBtn' + c;
        c++;
        genNotesBtn.innerHTML = 'Generate notes.';
        genNotesBtn.onclick = function() {
            socket.emit('notesGen')
        }
        span.appendChild(genNotesBtn);
        i.parentNode.replaceChild(span, i);
        var text = i.innerHTML;
    }
}

如何在这个 SocketIO 函数中使用

text
作为
subheading
的变量:

@socketio.on('notesGen')
def notesGen():
    assistantID = notesGenAssistant()
    subheading = ?
    notesGenThread(subheading, detail)
    notesGenRun(notesGenAssistantID, threadid)

我尝试将

var text = i.innerHTML;
重新声明为
var text = '{{ subheading }}'
,但 Flask 无法识别该变量。

javascript html flask flask-socketio
1个回答
0
投票

在客户端中,通过

emit()
调用发送您的数据:

        genNotesBtn.onclick = function() {
            socket.emit('notesGen', '<send what you want here>')
        }

然后在服务器中向您的处理程序添加一个参数:

@socketio.on('notesGen')
def notesGen(data):
    # data is what the client sent
© www.soinside.com 2019 - 2024. All rights reserved.