将JSON变量从HTML发送到python(flask)
我有一个flask网站,数据来自sqlite3数据库。 我制作了一个嵌套的下拉菜单,它是从JSON数组填充的 现在,我已经做了一个查询,计算从下拉菜单中选择的主题的创意数量。但这就是我要去的地方。如何将下拉菜单中的值传递到python中的查询 有人知道如何解决这个问题吗 编辑代码: 这是我用来将数据从sqlite转换为JSON的代码,因此我有一个下拉列表,它取决于前面的选择将JSON变量从HTML发送到python(flask),json,sqlite,flask,Json,Sqlite,Flask,我有一个flask网站,数据来自sqlite3数据库。 我制作了一个嵌套的下拉菜单,它是从JSON数组填充的 现在,我已经做了一个查询,计算从下拉菜单中选择的主题的创意数量。但这就是我要去的地方。如何将下拉菜单中的值传递到python中的查询 有人知道如何解决这个问题吗 编辑代码: 这是我用来将数据从sqlite转换为JSON的代码,因此我有一个下拉列表,它取决于前面的选择 var keyValueDataHealthRight = {{ keyValueProjectsHealthcare|t
var keyValueDataHealthRight = {{ keyValueProjectsHealthcare|tojson }};
var keyValueDataEnterpriseRight = {{ keyValueProjectsEnterprise|tojson }};
var keyValueDataEntetainmentRight = {{ keyValueProjectsEntertainment|tojson }};
var stateObjectRight = {
"Entertainment": keyValueDataEntetainmentRight,
"Healthcare": keyValueDataHealthRight,
"Enterprise": keyValueDataEnterpriseRight
};
window.onload = function Right() {
var divisonSelR = document.getElementById("DivisionRightFilter"),
projectSelR = document.getElementById("ProjectRightFilter"),
subProjectSelR = document.getElementById("SubprojectRightFilter");
for (var divisionR in stateObjectRight) {
divisonSelR.options[divisonSelR.options.length] = new Option(divisionR, divisionR);
}
divisonSelR.onchange = function Right() {
projectSelR.length = 1; // remove all options bar first
subProjectSelR.length = 1; // remove all options bar first
if (this.selectedIndex < 1) return; // done
for (var ProjectR in stateObjectRight[this.value]) {
projectSelR.options[projectSelR.options.length] = new Option(ProjectR, ProjectR);
}
};
divisonSelR.onchange(); // reset in case page is reloaded
projectSelR.onchange = function Right() {
subProjectSelR.length = 1; // remove all options bar first
if (this.selectedIndex < 1) return; // done
var subProjectsR = stateObjectRight[divisonSelR.value][this.value];
for (var i = 0; i < subProjectsR.length; i++) {
subProjectSelR.options[subProjectSelR.options.length] = new Option(subProjectsR[i], subProjectsR[i]);
}
}
};
我的问题是如何获取所选项目并将其传递给python,以便我可以在查询中使用它您可以创建一个只在Flask应用程序中获取POST方法的视图 大概是这样的:
@app.route('/get-query', methods=['POST'])
def getQuery(data):
# Example Query
query = 'SELECT * FROM exampleTable WHERE someColumn = {}'.format(data)
# Do stuff with query and return it
return do_stuff(query)
您可以返回JSON函数,可以返回文本,可以返回HTML,甚至可以将用户重定向到其他视图
甚至你也可以将methods=['GET','POST']
添加到你正在使用的视图中,然后检查请求.method
是否为POST
,它是否有数据
?
像这样的东西会有用的
@app.route('/some-route', methods=['GET', 'POST'])
def someView(data=None):
if request.method == 'POST':
if data:
# Do something with data and return
return do_stuff(data)
return "You have to provide data!", 400
return render_template('some_template.html')
如果您不理解,请告诉我,以便我可以解释更多您可以展示一些代码或示例吗?是的,对不起,我用代码编辑了我没有真正了解如何将选择列表中的数据发送和检索到Python有一个
值
属性用于您使用的每个选项
标记,您设置该值,然后该值将被发送,例如选项别名代码>,我也不明白向python发送一个select list selected选项和您的问题之间有什么关系
@app.route('/some-route', methods=['GET', 'POST'])
def someView(data=None):
if request.method == 'POST':
if data:
# Do something with data and return
return do_stuff(data)
return "You have to provide data!", 400
return render_template('some_template.html')