Jac*_*ero 13 javascript python variables sqlalchemy
想象一下,当更改下拉列表时,您需要编写一些只更改一组复选框的Javascript.
根据列表中选择的项目,将选中/取消选中某些复选框.
在后面,您有Python代码和一些SQLAlchemy.
Javascript需要像往常一样识别列表中的选定项目,将其发送回Python模块,然后Python模块将使用某些SQLAlchemy中的变量返回需要检查的复选框列表,即"用户选择'福特',所以复选框'焦点','蒙迪欧','嘉年华'需要检查"
我遇到的问题是,我似乎找不到从Javascript访问python模块的方法,而无需将div转换为迷你浏览器页面并将包含变量的URL传递给它!
有没有人对如何运作有任何想法?
Max*_*kin 10
有趣的是,我有一些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
});
Run Code Online (Sandbox Code Playgroud)
像这样的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)
Run Code Online (Sandbox Code Playgroud)
注意,它不使用Python cgi模块,因为整个请求在主体中作为JSON传递.
python 有一个json模块,非常适合这种场景。
使用旧的 AJAX,以 json 作为数据格式将允许您在 javascript 和您的 python 模块之间交换数据。
(除非你的 python 模块在客户端运行,但我不知道你如何从浏览器执行它......)