Python POST函数返回200,但不向POSTGRES发布任何内容

时间:2018-06-26 04:28:55

标签: python json ajax flask jinja2

我目前正在尝试使用html表单注册用户。然后,用户的输入将由ajax函数获取,并在flask服务器中作为json对象发送。

Python POST函数将接收json对象,该函数将解析数据并将其使用存储的函数保存到数据库中。 Python POST函数可以正常运行,因为我已对POSTMAN进行了测试。

这将显示注册表:

@app.route('/register', methods=['GET','POST'])
def register():
    return render_template('register.html')

在处理用户输入时:

@app.route('/registration', methods=['POST'])
    def registration():
        jsonobject = request.get_json()
        username = jsonobject['username']
        password = jsonobject['password']

        res = spcall("newcounselor", (username, password),True)

        if 'Error' in str(res[0][0]):
            return jsonify({'status': 'error', 'message': res[0][0]})
        return jsonify({'status': 'ok', 'message': res[0][0]})

要将数据从html表单推送到上面的python函数,我使用此AJAX发布函数,该函数在html表单的按钮中分配为onclick值:

<script>
        function register() {
            var username = $('#inputUsername').val();
            var password = $('#inputPassword').val();

            var jsonobject = JSON.stringify({"username":username,
                "password":password
            });

            $.ajax({
                url: "/registration",
                data: jsonobject,
                type: "POST",
                contentType: 'application/json;charset=UTF-8',
                dataType: "json",
                success: function (response) {
                    <!-- window.location.replace('/login')-->
                    alert(response);
                },
                error: function (error) {
                    alert(error);
                },
                beforeSend: function (xhrObj){
                xhrObj.setRequestHeader("Authorization",
                        "Basic " + btoa("xenia:Incorrect"));
            }
            })

        }
    </script>

到目前为止我已经尝试过:

  • 用try-exception环绕我的通话
  • 检查javascript是否从表单获取数据(确实如此!)
  • 检查Python post函数是否正常工作(它是使用! 邮递员)
  • 检查spcall是否正常(正常!)
  • 我将jsonobject = request.get_json()更改为jsonobject =
    request.get_json( force = True

但仍然无法正常工作。它仅返回状态码200,但不向postgres数据库添加任何内容。我在做什么错了?

0 个答案:

没有答案