【发布时间】:2014-09-28 18:25:32
【问题描述】:
我正在通过阅读http://flaskbook.com/# 这本书来学习 Flask(我在下面发布的一些代码取自书中的示例),但我想使用 mongodb 作为数据库,所以我使用了 flask-mongoengine 扩展。实际上我正在尝试构建一个帐户验证系统,您可以在下面找到我的源代码:
from flask.ext.mongoengine import MongoEngine
from werkzeug.security import generate_password_hash
from flask.ext.login import UserMixin
app = Flask(__name__)
db = MongoEngine(app)
class User(UserMixin, db.Document):
email = db.StringField(required=True, unique=True)
username = db.StringField(required=True, unique=True, max_length=50)
password_hash = db.StringField(max_length=128)
@property
def password(self):
raise AttributeError('Password is not a readable attribute!')
@password.setter
def password(self, password):
self.password_hash = generate_password_hash(password)
下面你可以在 shell 中看到我的问题:
>>> from my_app import User
>>> u = User(email='example@mail.com', username='bestuser', password='ciao')
>>> u.password_hash
>>> "no output here"
但如果我这样做:
>>> u.password = 'ciao'
>>> u.password_hash
'pbkdf2:sha1:1000$39qJ6zDT$4f2a446acc7205ad53f0b5cc5409b2d9420c29a5'
它工作正常。
所以我实际上不知道如何解决这个问题。每个建议都非常受欢迎。 提前感谢您,如果您需要更多信息,请尽管询问。
【问题讨论】:
标签: python mongodb flask mongoengine