javascript - 在 Python 和 Javascript 之间传递变量

标签 javascript python variables sqlalchemy

想象一下,您需要编写一些 Javascript,以便在更改下拉列表时简单地更改一组复选框。

根据在列表中选择的项目,一些复选框将变为选中/未选中。

在后面,您有 Python 代码和一些 SQLAlchemy。

Javascript 需要像往常一样识别列表中的选定项,将其发送回 Python 模块,然后 Python 模块将使用某些 SQLAlchemy 中的变量返回需要选中的复选框列表,即“用户选择了‘Ford’ ',因此需要选中复选框'Focus'、'Mondeo'、'Fiesta'"

我遇到的问题是,我似乎无法找到一种方法来从 Javascript 访问 python 模块,而无需将 div 转换为迷你浏览器页面并将包含变量的 url 传递给它!

有人知道这应该如何运作吗?

最佳答案

有趣的是,我有一些带有 JavaScript 的网页可以与使用 SQLAlchemy 的 Python CGI 模块对话。

我所做的是发送 AJAX 请求,但在正文中使用 JSON 请求而不是 XML。 Python CGI 模块使用标准 json将 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
});

Python 是这样的:

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 传递。

关于javascript - 在 Python 和 Javascript 之间传递变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7689695/

相关文章:

python - 导入 JavascriptExecutor (Selenium)

javascript - PHP、JavaScript 和 MySQL : updating and passing of variables

bash - 如何在 bash 中列出脚本中声明的变量?

javascript - 如何选择具有相同 anchor 文本和 href 值的链接

javascript - 如何修复我在加载 Facebook javascript-sdk 时遇到的错误?

javascript - 如何将 PHP 嵌入 Javascript 函数中?

javascript - 为什么我不能在 jQuery 对话框中使用 ng-click

python - Curl 有效,但 python 请求无法上传图像

python - Python 中的多线程猎鹰

匿名函数中的 PHP 变量