写一个登录判断机制py

import sqlite3

from sqlite3 import Error

 

def create_connection(db_file):

    """ 创建数据库连接 """

    conn = None

    try:

        conn = sqlite3.connect(db_file)

        return conn

    except Error as e:

        print(e)

    return conn

 

def create_table(conn):

    """ 创建用户表 """

    try:

        c = conn.cursor()

        c.execute("""CREATE TABLE IF NOT EXISTS users (

                        username TEXT NOT NULL,

                        password TEXT NOT NULL,

                        PRIMARY KEY(username))""")

    except Error as e:

        print(e)

 

def insert_user(conn, username, password):

    """ 插入新用户 """

    try:

        c = conn.cursor()

        c.execute("INSERT INTO users (username, password) VALUES (?, ?)", (username, password))

        conn.commit()

    except Error as e:

        print(e)

 

def login(conn, username, password):

    """ 用户登录验证 """

    try:

        c = conn.cursor()

        c.execute("SELECT password FROM users WHERE username = ?", (username,))

        data = c.fetchone()

        if data is None:

            return False, "用户名不存在"

        if data[0] == password:

            return True, "登录成功"

        else:

            return False, "密码错误"

    except Error as e:

        print(e)

        return False, "登录失败"

 

# 数据库文件

db_file = 'users.db'

 

# 创建数据库连接

conn = create_connection(db_file)

 

# 创建用户表

if conn is not None:

    create_table(conn)

    # 插入一个用户,仅用于测试(实际应用中应该从用户输入或其他方式获取)

    with conn:

        conn.execute("INSERT INTO users (username, password) VALUES (?, ?)", ('testuser', 'testpassword'))

# 关闭连接

conn.close()

 

# 用户登录

username = input("请输入用户名: ")

password = input("请输入密码: ")

 

# 创建数据库连接

conn = create_connection(db_file)

 

# 验证登录

success, message = login(conn, username, password)

print(message)

 

# 关闭连接

conn.close()

上一篇:Docker exec bash -c 使用详解与 Python 封装示例


下一篇:为什么要虚析构,为什么不能虚构造