Flask 和 Ajax current_user.id returns 错误
Flask and Ajax current_user.id returns error
尝试在 Flask 上发出 ajax POST 请求,一切正常,除非涉及 current_user ajax请求。
例如:
python
@app.route("/example", methods=['POST', 'GET'])
def example():
if request.method == 'POST':
mynumber = request.form['number']
whatdoesntwork = mynumber + current_user.id
return whatdoesntwork
javascript
$(document).ready(function () {
$('.button').on('click', function () {
var myNumber = 100;
var toPost = {
number : myNumber
};
$.ajax({
type : 'POST',
url : '/example',
data : toPost,
success : function (returnValue) {
console.log(returnValue);
},
error : function() {
console.log("why doesnt it work?")
}
});
});
});
current_user.whatever 在代码的其他地方都很好
例如:
@app.route("/example", methods=['POST', 'GET'])
def example():
flash(current_user.id, 'success)
return render_template('eg.html')
以上代码会在网页中以闪现消息的形式显示用户id
但是,每当 current_user.whatever 涉及 ajax 请求时,它会引发错误,并在控制台上显示错误 500。
第一次在 Whosebug 上发帖,如果问题不直接,请见谅
下次您在这里提问时,请提供您的错误输出。但是,我想我知道发生了什么。
Flask-Login
用户 ID 的类型为 ObjectId
。它们看起来像这样:
{{
$oid : 'xxxxxxxxxxxxxxxxxxxxxx'
}}
您可以通过简单地调用 str(current_user.id)
.
来序列化它们
你的情况:
@app.route("/example", methods=['POST', 'GET'])
def example():
if request.method == 'POST':
mynumber = request.form['number']
whatdoesntwork = mynumber + str(current_user.id)
return whatdoesntwork
尝试在 Flask 上发出 ajax POST 请求,一切正常,除非涉及 current_user ajax请求。
例如:
python
@app.route("/example", methods=['POST', 'GET'])
def example():
if request.method == 'POST':
mynumber = request.form['number']
whatdoesntwork = mynumber + current_user.id
return whatdoesntwork
javascript
$(document).ready(function () {
$('.button').on('click', function () {
var myNumber = 100;
var toPost = {
number : myNumber
};
$.ajax({
type : 'POST',
url : '/example',
data : toPost,
success : function (returnValue) {
console.log(returnValue);
},
error : function() {
console.log("why doesnt it work?")
}
});
});
});
current_user.whatever 在代码的其他地方都很好 例如:
@app.route("/example", methods=['POST', 'GET'])
def example():
flash(current_user.id, 'success)
return render_template('eg.html')
以上代码会在网页中以闪现消息的形式显示用户id
但是,每当 current_user.whatever 涉及 ajax 请求时,它会引发错误,并在控制台上显示错误 500。
第一次在 Whosebug 上发帖,如果问题不直接,请见谅
下次您在这里提问时,请提供您的错误输出。但是,我想我知道发生了什么。
Flask-Login
用户 ID 的类型为 ObjectId
。它们看起来像这样:
{{
$oid : 'xxxxxxxxxxxxxxxxxxxxxx'
}}
您可以通过简单地调用 str(current_user.id)
.
你的情况:
@app.route("/example", methods=['POST', 'GET'])
def example():
if request.method == 'POST':
mynumber = request.form['number']
whatdoesntwork = mynumber + str(current_user.id)
return whatdoesntwork