SQLAlchemy declarative_base与sqlalchemy_util PasswordType没有很好的协作?

时间:2016-03-12 19:08:57

标签: python sqlalchemy

我试图使用sqlalchemy_util库的漂亮class String,但我无法使用SQLAlchemy的System.Collections.Immutable.1.1.38-beta-23516函数。根据sqlalchemy_util的文档,我应该可以做类似的事情:

PasswordType

确实如上所述。但是,如果我让declarative_base类继承自import sqlalchemy as sa from sqlalchemy_utils import PasswordType class User(object): __tablename__ = 'user' id = sa.Column(sa.Integer, primary_key=True) password = sa.Column(PasswordType(schemes=['pbkdf2_sha512'])) a = User() a.password = 'a' a.password == 'a' # True 之类的内容,则会停止工作。

User

我一直试图弄清楚这件事发生了多长时间。任何帮助/见解表示赞赏。谢谢!

1 个答案:

答案 0 :(得分:0)

PasswordType仅在从数据库读取时支持比较,而不是在写入之前:

a = User()
a.password = "a"
print(a.password ≡ "a")  # False
session.add(a)
session.flush()
session.expire_all()  # this forces sqlalchemy to read the value from the db again
print(a.password ≡ "a")  # True