📜  使用Python在 SQLite 中生成和存储密码的 GUI(1)

📅  最后修改于: 2023-12-03 15:36:36.576000             🧑  作者: Mango

使用Python在 SQLite 中生成和存储密码的 GUI

简介

本文将介绍如何使用Python和SQLite创建一个简单的密码管理器GUI,它可以生成和存储密码,并且可以轻松地查看和删除这些密码。

准备工作

首先,我们需要安装Python和SQLite。可以通过以下两个网站下载和安装它们:

  • Python: https://www.python.org/downloads/
  • SQLite: https://www.sqlite.org/download.html

接下来,我们需要安装一些Python库来帮助我们开发GUI。我们将使用Tkinter和sqlite3库。这些库可能已经预安装在您的Python环境中。如果没有,请使用以下命令安装它们:

pip install tkinter
pip install sqlite3
创建SQLite数据库

我们需要创建一个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

现在,我们可以开始创建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)

创建GUI界面

#创建主窗口
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应用程序。