使用Python数据库跟踪在线用户

2024-04-26 17:42:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我将数据库更改为包含一个0/1变量,如果用户在其中,该变量将更改为1,如果用户关闭窗口/断开连接,该变量将更改为0。你知道吗

数据库就是这样建立的

    cursor.execute('''
    CREATE TABLE IF NOT EXISTS user(
    userID INTEGER PRIMARY KEY,
    username VARCHAR(20) NOT NULL,
    password VARCHAR(20) NOT NULL,
    user_on INTEGER(20) NOT NULL);
    ''')

这是我试图在登录函数中使用的代码。你知道吗

               find_user_lite = ("SELECT * FROM user WHERE username = ?")
                cursor.execute(find_user_lite,[(username)])
                if cursor.fetchall():
                    on_state = int(1)
                    change_state = ("UPDATE user SET user_on = ? WHERE username = ?")
                    cursor.execute(change_state,[(on_state),(username)])

当我单击login按钮时,我有一个单独的server.py,它运行大多数数据库管理,如查看数据库、创建新用户等

当我试图运行显示当前用户的函数时,除了一个[]之外,什么也不会显示。
gyazo.com

以下是显示当前联机用户的函数:

def display_users():
    with sqlite3.connect("apc.db") as db:
        cursor = db.cursor()
    cursor.execute("SELECT * FROM user WHERE user_on")
    print(sum(cursor.fetchall()))
    db.commit()

Tags: 函数用户数据库executedbonusernamenot