我有一个包含一些用户变量的类,在shell中我想从数据库中获取第一个用户,我使用__dict__
属性来查看所有用户数据,有一些数据我不希望他们出现在字典里面,比如他的密码和凭据,这是我的代码:
class User(db.Model):
__tablename__ = 'user'
id = db.Column(db.Integer(), primary_key=True)
username = db.Column(db.String())
password = db.Column(db.String())
public_id = db.Column(db.String(), default=uuid.uuid4)
my_code = db.Column(db.String())
credential = db.Column(db.String())
def __repr__(self):
return '{}'.format(self.username)
def set_password(self, password):
self.password = generate_password_hash(password)
def check_password(self, value):
return check_password_hash(self.password, value)
def check_code(self, code):
return True if code == self.my_code else False
@property
def get_id(self):
return "{id}".format(id=self.public_id)
如果我使用__dict__
属性,如何阻止密码和凭据显示在字典中?
答案 0 :(得分:1)
您应该尝试过滤User.__dict__
只获取您要显示的数据。 class属性不可能超出Class.__dict__
,这就是Python映射所有属性的方式。