【问题标题】:Querying information for HTTPBasicAuth查询 HTTPBasicAuth 信息
【发布时间】:2017-06-21 19:47:23
【问题描述】:

对于我的身份验证网站,我使用的是 https://flask-httpauth.readthedocs.io/en/latest/ 。现在我试图让它使用数据库中的数据。为此,我创建了名为用户的数据库并创建了名为用户名和密码的列。

为了在将其类定义为模型后从该表中获取数据,我制作了如下所示的 get_user 函数:

@staticmethod
    def get_user():
        query = (Users
                 .select())
        user = []
        for s in query:
            user.append(s)

        return user

(我不确定它是否正确)

接下来我必须修改 get_pw 函数,但我也不确定如何修改它,所以我让它看起来像它:

@auth.get_password
    def get_pw(username):
        if username in Users.get_user():
            return users.get(Users.get_user())
        return None

现在运行该站点后,我会提示输入登录名和密码,但是我在数据库中设置的那些似乎不起作用,因此 get_pw 函数一定有问题。另外我正在使用 peewee SQL 来管理数据库:http://docs.peewee-orm.com/en/latest/peewee/querying.html

【问题讨论】:

    标签: python mysql authentication peewee


    【解决方案1】:

    您可以摆脱 get_user 方法,因为您正在发出一个非常大的选择查询,该查询从用户表中获取所有记录。 get_pw 可以重新定义为:

    def get_pw(username):
        user = Users.get(Users.name == username) #assuming you have a username field in model
        return user.password #assuming a password field
    

    此外,将模型类定义为单数名词而不是复数是一个很好的做法。因此,最好将其称为 User 而不是 Users

    这将帮助您立即开始:http://docs.peewee-orm.com/en/latest/peewee/quickstart.html#quickstart

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多