是否有一种方法可以使用SQLite中现有的python变量检查记录中的特定字段

是否有一种方法可以使用SQLite中现有的python变量检查记录中的特定字段,python,sqlite,Python,Sqlite,对不起,如果这个问题看起来很复杂或者很容易搞错,我正在努力寻找任何特别有用的东西。基本上,在python程序开始时,我有一个登录名,用于检查数据库,查看用户名和密码是否匹配: existingAccount = input("Do you already have an account? (y/n)") if existingAccount == "y": username = input("Please enter your user

对不起,如果这个问题看起来很复杂或者很容易搞错,我正在努力寻找任何特别有用的东西。基本上,在python程序开始时,我有一个登录名,用于检查数据库,查看用户名和密码是否匹配:

existingAccount = input("Do you already have an account? (y/n)")
if existingAccount == "y":

    username = input("Please enter your username: ")
    password = input("Please enter your password:")

    find_user = ("SELECT * FROM Users WHERE Username = ? AND Password = ?")
    c.execute(find_user, [(username), (password)])
    results = c.fetchall()
这将创建变量results,我想将其用作检查活动用户创建订单和检查其权限级别(存储在Users表中)的方法

我将要写一个函数,它将允许某人向products表添加新产品,但我只希望具有admin权限级别的用户能够这样做

是否有一种方法可以使用results变量执行某种if语句,比如“如果结果包含userPermissionLevel Admin,那么继续,如果不打印“permissionlevel uncipled”


如果这是一个简单的问题,请再次表示感谢和抱歉。

考虑到结果只有一行(这是正常的),您只需检查结果[0]项和userPermissionLevel列的相应位置。例如,如果是第五列,您只需检查以下内容:

if results[0][5]=='Admin':
    do_some_stuff
else:
    print('permission level inadequate')
如果在创建sqlite3连接后运行了此行,还可以按名称检查特定列:

conn.row_factory = sqlite3.Row
在这种情况下,您可以使用列名将aboce代码更改为:

if results[0]['userPermissionLevel']=='Admin':
    do_some_stuff
else:
    print('permission level inadequate')

谢谢你的回答,这正是我想做的。