如何使用 Flask 限制 Web 应用程序中字段的访问

问题描述 投票:0回答:1

我正在使用数据库制作一个网络应用程序,我想限制管理员对某些字段的访问。

我可以在数据库中使用变量进行验证吗?: 这只是一个例子...

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")

我可以这样做吗?还是不安全?

python flask web-applications flask-admin
1个回答
0
投票

其中一种方法是您可以执行以下操作:

模型中的方法之一是您可以添加 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")
© www.soinside.com 2019 - 2024. All rights reserved.