python获取表单数据怎么会这样?

时间:2015-02-22 18:59:45

标签: python python-2.7 flask

这是我的ajax表单提交的js函数:

$('.sendButton').on('click', function(){
    $.post( "/send-form", $('#contactForm').serialize())
}

这是我的表格:

<form id="contactForm">
    <input id="fastName" name="name" type="text" />
    <input id="fastPhone" name="phone" type="text" />
    <div class="sendButton">send</div>
</form>

这是我的后端函数来处理它,我正在使用python,flask

@app.route("/send-form", methods=['POST'])
def send_form():
    data = request.data   
    print request.data

在我的控制台中打印数据:

127.0.0.1 - - [22/Feb/2015 23:50:54] "POST /send-form HTTP/1.1" 200 - name=dfdsf&phone=89920203725

但是我在另一个项目中做了同样的事情而且没有打印任何内容。 细节在这里: Can't get post ajax request data python 怎么可能呢?

1 个答案:

答案 0 :(得分:0)

数据位于字段request.form中,可以通过以下方式获取:

name = request.form['name']
phone = request.form['phone']

备注。如果它们没有发送,则此代码将抛出异常。

更长的解释 原因是数据是使用称为 application / x-www-form-urlencoded 的编码发送的。数据位于 request.data 字段中,但要对其进行解码,您可以使用 request.form ,Flask会自动将其解码为 application / x-www-窗体-urlencoded