将HTML数据传递到Flask

时间:2014-02-27 20:47:55

标签: javascript python html flask

我有一个Web应用程序,我希望将文本框值传递到烧瓶应用程序中。但是,当我打印出烧瓶中的请求对象时,我没有得到数据。可以帮助我。这是代码:

Flask Server:

@app.route('/send_data', methods=['GET', 'POST'])

def send_data():
    print request
    if request.method == "POST":
        #Operations with the data received 
    else:
    return jsonify(txt="Nothing received");

HTML CODE:

<div id="div_submit">
<form name="form_submit">
    <textarea cols="100" rows="1" id="txt_query">

    </textarea>
    <br>
    <br/>
    <input type="submit" value="Submit" onclick="send_query()">
</form>
</div>

使用Javascript:

function send_query()
    {
        var qry=document.getElementById("txt_query").value;
        //alert(qry);
        var contentType = "application/x-www-form-urlencoded";
        var ajax=$.ajax({
            type: "POST",
            url: "http://0.0.0.0:8080/send_data",
            data: JSON.stringify(qry),
            dataType: "json"

        }).done(function(data){
                alert("success");
            });
            ajax.fail(function(data){
                alert("fail");
            });


    }

2 个答案:

答案 0 :(得分:1)

您正在发布JSON数据;将内容类型设置为application/json,然后使用request.get_json() method加载数据:

var ajax=$.ajax({
    type: "POST",
    url: "http://127.0.0.1:8080/send_data",
    data: JSON.stringify({query: qry}),
    dataType: "json",
    contentType: "application/json; charset=UTF-8"
})

网址必须有意义; 0.0.0.0对于服务器是可以的(这意味着'绑定到所有接口'),但你可能在localhost上运行它,所以请先使用它。

在您的视图中使用:

data = request.get_json()
query = data['query']

答案 1 :(得分:-1)

您需要在烧瓶应用中使用请求来接收数据:

http://flask.pocoo.org/docs/quickstart/#the-request-object