在Python和Javascript之间传递变量

在Python和Javascript之间传递变量,javascript,python,variables,sqlalchemy,Javascript,Python,Variables,Sqlalchemy,假设您需要编写一些Javascript,当下拉列表更改时,这些Javascript只需更改一组复选框 根据在列表中选择的项目,某些复选框将被选中/取消选中 后面是Python代码和一些SQLAlchemy Javascript需要像往常一样识别列表中的所选项目,将其发送回Python模块,然后Python模块将在某些SQLAlchemy中使用该变量返回需要选中的复选框列表,即“用户选择的‘福特’,因此需要选中‘焦点’、‘蒙迪欧’、‘嘉年华’复选框” 我遇到的问题是,如果不将div转换为迷你浏览器

假设您需要编写一些Javascript,当下拉列表更改时,这些Javascript只需更改一组复选框

根据在列表中选择的项目,某些复选框将被选中/取消选中

后面是Python代码和一些SQLAlchemy

Javascript需要像往常一样识别列表中的所选项目,将其发送回Python模块,然后Python模块将在某些SQLAlchemy中使用该变量返回需要选中的复选框列表,即“用户选择的‘福特’,因此需要选中‘焦点’、‘蒙迪欧’、‘嘉年华’复选框”

我遇到的问题是,如果不将div转换为迷你浏览器页面并向其中传递包含变量的url,我似乎无法找到从Javascript访问python模块的方法


有人对这个应该如何工作有什么想法吗?

python有一个
json
模块,非常适合这个场景

使用一个好的旧AJAX,使用json作为数据格式,将允许您在javascript和python模块之间交换数据


(除非您的python模块在客户端运行,但我不知道如何从浏览器中执行它…

有趣的是,我有一些JavaScript网页与使用SQLAlchemy的python CGI模块对话

我要做的是发送AJAX请求,但在主体中使用JSON请求,而不是XML。Python CGI模块使用标准模块将JSON反序列化到字典中

JavaScript方面如下所示:

function on_request_success(response) {
    console.debug('response', response);
} 

function on_request_error(r, text_status, error_thrown) {
    console.debug('error', text_status + ", " + error_thrown + ":\n" + r.responseText);
}

var request = { ... };
jQuery.ajax({
    url: 'http://host/whatever.cgi',
    type: 'POST',
    cache: false,
    data: JSON.stringify(request),
    contentType: 'application/json',
    processData: false,
    success: on_request_success,
    error: on_request_error
});
request = json.load(sys.stdin)
response = handle_request(request)
print("Content-Type: application/json", end="\n\n")
json.dump(response, sys.stdout, indent=2)
Python是这样的:

function on_request_success(response) {
    console.debug('response', response);
} 

function on_request_error(r, text_status, error_thrown) {
    console.debug('error', text_status + ", " + error_thrown + ":\n" + r.responseText);
}

var request = { ... };
jQuery.ajax({
    url: 'http://host/whatever.cgi',
    type: 'POST',
    cache: false,
    data: JSON.stringify(request),
    contentType: 'application/json',
    processData: false,
    success: on_request_success,
    error: on_request_error
});
request = json.load(sys.stdin)
response = handle_request(request)
print("Content-Type: application/json", end="\n\n")
json.dump(response, sys.stdout, indent=2)
注意,它没有使用Python cgi模块,因为整个请求在主体中作为JSON传递