POST-функция Python возвращает 200, но POSTGRES ничего не POST - PullRequest
0 голосов
/ 26 июня 2018

В настоящее время я пытаюсь зарегистрировать пользователя, используя HTML-форму.Вводимые пользователем данные будут затем восприняты функцией ajax и отправлены в виде объекта json на сервер фляги.

Объект json будет получен функцией POST Python, которая анализирует данные и сохраняет их в базе данных, используя хранимую функцию.Функция 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, которую я назначил в качестве значения onclick для кнопки html-формы:

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

Что ядо сих пор пытался:

  • окружил мой spcall try-исключением
  • проверил, получает ли javascript данные из формы (да!)
  • проверено, работает ли функция Python post (проверено с помощью POSTMAN)
  • проверено, работает ли spcall (это так!)
  • Я изменил jsonobject = request.get_json ()to jsonobject =
    request.get_json ( force = True )

Но все равно это не работает.Он возвращает только код состояния 200, но ничего не добавляет в базу данных postgres.Что я делаю не так?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...