[英]Flask & MongoDB (mLab) TypeError: ObjectId('5bf0b6ce397b3635dc0b10ab') is not JSON serializable
我正在構建一個基於Flask的Web應用程序,並且在我的數據庫幫助器類中,我有一個create_user()函數,如果該行顯示如下,則該函數可以正常工作:
users.insert({'user': email, 'password': hashpass})
但是,當我將其更改為:
users.insert({'email': email, 'password': hashpass})
我收到以下錯誤:
TypeError: ObjectId('5bf0b6ce397b3635dc0b10ab') is not JSON serializable
數據庫助手類
import bcrypt
class DBHelper:
def __init__(self, mongo):
self.mongo = mongo
def create_user(self, email, password):
users = self.mongo.db.users
hashpass = bcrypt.hashpw(password.encode('utf-8'), bcrypt.gensalt())
users.insert({'email': email, 'password': hashpass})
燒瓶代碼
@app.route("/account")
@login_required
def account():
return render_template("home.html", options=options, questions=questions)
return "You are logged in"
@app.route('/register', methods=['POST', 'GET'])
def register():
if request.method == 'POST':
stored_user = DB.get_user(request.form['email'])
if stored_user is None:
DB.create_user(request.form['email'], request.form['pass'])
#session['username'] = request.form['username']
user = User(DB.get_user(request.form['email']))
login_user(user)
return redirect(url_for('account'))
return 'That username already exists!'
return render_template('register.html')
問題出在以下代碼上:
user = User(DB.get_user(request.form['email']))
login_user(user)
我正在將字典傳遞給User類,而不是電子郵件地址。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.