python用户登录d_创建依赖于输入的按钮,获取用户d
时间: 2024-02-18 11:06:14 浏览: 70
python使用 __init__初始化操作简单示例
5星 · 资源好评率100%
对于这个问题,我不太清楚您的具体需求。如果您是想实现一个 Python 用户登录的功能,需要创建一个用户界面,并且能够根据用户输入的用户名和密码进行验证,然后创建一个依赖于输入的按钮,获取用户信息,那么您可以尝试使用 Python 的 tkinter 模块来创建用户界面,使用 SQLite 数据库来存储用户信息,然后编写相关的代码逻辑来实现用户登录的功能。以下是一个示例代码,供您参考:
```python
import tkinter as tk
import sqlite3
class LoginWindow:
def __init__(self):
# 创建主窗口
self.root = tk.Tk()
self.root.title('用户登录')
self.root.geometry('300x200')
# 创建用户名和密码输入框
tk.Label(self.root, text='用户名:').place(x=50, y=50)
self.username_entry = tk.Entry(self.root)
self.username_entry.place(x=110, y=50)
tk.Label(self.root, text='密码:').place(x=50, y=80)
self.password_entry = tk.Entry(self.root, show='*')
self.password_entry.place(x=110, y=80)
# 创建登录按钮
self.login_button = tk.Button(self.root, text='登录', command=self.login)
self.login_button.place(x=120, y=120)
# 创建数据库连接
self.conn = sqlite3.connect('user.db')
self.cursor = self.conn.cursor()
# 创建用户表
self.cursor.execute('''CREATE TABLE IF NOT EXISTS user
(id INTEGER PRIMARY KEY AUTOINCREMENT,
username TEXT,
password TEXT)''')
self.conn.commit()
def login(self):
# 获取用户名和密码
username = self.username_entry.get()
password = self.password_entry.get()
# 查询用户表,验证用户名和密码
self.cursor.execute("SELECT * FROM user WHERE username=? AND password=?", (username, password))
user = self.cursor.fetchone()
if user:
# 登录成功,关闭窗口
self.root.destroy()
# 获取用户id和用户名
user_id = user[0]
username = user[1]
# 调用回调函数,传递用户id和用户名
self.callback(user_id, username)
else:
# 登录失败,弹出提示框
tk.messagebox.showerror('错误', '用户名或密码错误!')
def run(self, callback):
# 显示窗口并进入消息循环
self.callback = callback
self.root.mainloop()
def add_user(self, username, password):
# 添加用户到用户表
self.cursor.execute("INSERT INTO user (username, password) VALUES (?, ?)", (username, password))
self.conn.commit()
def __del__(self):
# 关闭数据库连接
self.cursor.close()
self.conn.close()
# 创建登录窗口
login_window = LoginWindow()
# 添加用户
login_window.add_user('admin', 'admin')
def callback(user_id, username):
# 获取用户信息成功,打印用户id和用户名
print('user_id:', user_id)
print('username:', username)
# 运行登录窗口,并传递回调函数
login_window.run(callback)
```
在这个示例代码中,我们创建了一个 LoginWindow 类,用于创建用户登录窗口。在窗口中,我们创建了用户名和密码输入框,以及一个登录按钮。当用户点击登录按钮时,我们将获取用户名和密码,然后查询数据库,验证用户名和密码是否正确。如果验证通过,我们将关闭窗口,并调用传递进来的回调函数,将用户id和用户名传递给回调函数。如果验证失败,我们将弹出一个错误提示框。
在这个示例代码中,我们使用 SQLite 数据库来存储用户信息。我们创建了一个 user 表,用于存储用户名和密码。当用户注册时,我们将用户信息插入到 user 表中。当用户登录时,我们将查询 user 表,验证用户名和密码是否正确。
当然,这只是一个简单的示例代码,您可以根据自己的需求来进行修改和扩展。
阅读全文