我目前正在尝试使用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>
到目前为止我已经尝试过:
但仍然无法正常工作。它仅返回状态码200,但不向postgres数据库添加任何内容。我在做什么错了?