我正在使用数据库制作一个网络应用程序,我想限制管理员对某些字段的访问。
我可以在数据库中使用变量进行验证吗?: 这只是一个例子...
class User(UserMixin, db.Model):
__bind_key__ = 'user_database'
id = db.Column(db.Integer, primary_key = True)
nome = db.Column(db.String(120))
sobrenome = db.Column(db.String(120))
email = db.Column(db.String(120), unique=True, index=True)
password_hash = db.Column(db.String(128))
admin = db.Column(db.Boolean())
def is_admin(user_id):
user = User.query.filter_by(id=user_id).first()
if user.admin = True:
print("admin")
else: print("Not Admin")
我可以这样做吗?还是不安全?
其中一种方法是您可以执行以下操作:
模型中的方法之一是您可以添加 is_admin 方法并使其成为类的属性:
class User(UserMixin, db.Model):
# ... same all fields
@property
def is_admin(self):
return self.admin
您可以使用此方法作为变量来检查他是否是管理员,如下所示:
user = User.query.get(user_id)
if user.is_admin:
# Here you can add your logic if admin
print("Admin")
else:
# Here you can add your logic if not admin
print("Not Admin")