Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将JSON变量从HTML发送到python(flask)_Json_Sqlite_Flask - Fatal编程技术网

将JSON变量从HTML发送到python(flask)

将JSON变量从HTML发送到python(flask),json,sqlite,flask,Json,Sqlite,Flask,我有一个flask网站,数据来自sqlite3数据库。 我制作了一个嵌套的下拉菜单,它是从JSON数组填充的 现在,我已经做了一个查询,计算从下拉菜单中选择的主题的创意数量。但这就是我要去的地方。如何将下拉菜单中的值传递到python中的查询 有人知道如何解决这个问题吗 编辑代码: 这是我用来将数据从sqlite转换为JSON的代码,因此我有一个下拉列表,它取决于前面的选择 var keyValueDataHealthRight = {{ keyValueProjectsHealthcare|t

我有一个flask网站,数据来自sqlite3数据库。 我制作了一个嵌套的下拉菜单,它是从JSON数组填充的

现在,我已经做了一个查询,计算从下拉菜单中选择的主题的创意数量。但这就是我要去的地方。如何将下拉菜单中的值传递到python中的查询

有人知道如何解决这个问题吗

编辑代码:

这是我用来将数据从sqlite转换为JSON的代码,因此我有一个下拉列表,它取决于前面的选择

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')