我试图使用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
我一直试图弄清楚这件事发生了多长时间。任何帮助/见解表示赞赏。谢谢!
答案 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