📅  最后修改于: 2023-12-03 15:36:36.576000             🧑  作者: Mango
使用Python在 SQLite 中生成和存储密码的 GUI
本文将介绍如何使用Python和SQLite创建一个简单的密码管理器GUI,它可以生成和存储密码,并且可以轻松地查看和删除这些密码。
首先,我们需要安装Python和SQLite。可以通过以下两个网站下载和安装它们:
接下来,我们需要安装一些Python库来帮助我们开发GUI。我们将使用Tkinter和sqlite3库。这些库可能已经预安装在您的Python环境中。如果没有,请使用以下命令安装它们:
pip install tkinter
pip install sqlite3
我们需要创建一个SQLite数据库来存储我们的密码。我们可以使用以下Python代码来创建一个名为passwords.db
的数据库文件,并在其中创建一个名为passwords
的表格:
import sqlite3
# 创建数据库连接
conn = sqlite3.connect('passwords.db')
# 创建游标对象
cursor = conn.cursor()
# 创建passwords表
cursor.execute('CREATE TABLE IF NOT EXISTS passwords (id INTEGER PRIMARY KEY, website TEXT, username TEXT, password TEXT)')
# 提交更改
conn.commit()
# 关闭数据库连接
conn.close()
现在,我们可以开始创建GUI。在这个密码管理器中,我们需要用户输入导航名称和密码,并将其保存到我们的数据库中。我们还需要一个简单的表格来显示所有保存的密码。
from tkinter import *
import sqlite3
def insert_password():
#获取用户输入的网站、用户名和密码
website = website_input.get()
username = username_input.get()
password = password_input.get()
#创建数据库连接
conn = sqlite3.connect('passwords.db')
#创建游标对象
cursor = conn.cursor()
#将密码插入到数据库中
cursor.execute('INSERT INTO passwords (website, username, password) VALUES(?,?,?)', (website, username, password))
#提交更改
conn.commit()
#关闭数据库连接
conn.close()
#重置用户输入框
website_input.delete(0, END)
username_input.delete(0, END)
password_input.delete(0, END)
#创建主窗口
root = Tk()
#设置窗口的标题
root.title("Password Manager")
#设置窗口的大小
root.geometry("400x400")
#在窗口中添加标签和用户输入框
website_label = Label(root, text="Website:")
website_label.pack()
website_input = Entry(root)
website_input.pack()
username_label = Label(root, text="Username:")
username_label.pack()
username_input = Entry(root)
username_input.pack()
password_label = Label(root, text="Password:")
password_label.pack()
password_input = Entry(root, show="*")
password_input.pack()
#添加一个按钮来插入密码
insert_button = Button(root, text="Insert Password", command=insert_password)
insert_button.pack()
#创建一个列表来显示保存的密码
password_list = Listbox(root)
password_list.pack()
#在窗口中显示所有保存的密码
#创建数据库连接
conn = sqlite3.connect('passwords.db')
#创建游标对象
cursor = conn.cursor()
#查询所有密码
cursor.execute('SELECT * FROM passwords')
passwords = cursor.fetchall()
#将所有密码插入到列表中
for password in passwords:
password_list.insert(END, f"Website: {password[1]}, Username: {password[2]}, Password: {password[3]}")
#关闭数据库连接
conn.close()
#运行主循环
root.mainloop()
现在,我们可以运行这个应用程序。当我们点击“Insert Password”按钮时,它将获取用户输入的网站、用户名和密码,并将其保存到我们的数据库中。它还将重置所有用户输入框,以便我们可以轻松地添加更多密码。
列表框将显示我们所有保存的密码,包括网站名称、用户名和密码。
在本文中,我们使用Python和SQLite创建了一个简单的密码管理器GUI。用户可以使用此应用程序生成和存储密码,并轻松查看和删除这些密码。这个例子展示了如何使用Python和SQLite创建一个良好的GUI应用程序。