我想制作一个小型数据库,并确保您需要一个密码才能进入数据库主屏幕



我叫维克多,今年15岁。我对编码很陌生,需要一些帮助:(我目前正在为我创建一个数据库,以保存我的密码和用户信息。我正处于数据库运行良好的阶段。我不知道如何使我在tkinter中的顶层可以访问,而我的根窗口不能访问,我也不知道如何检查在密码框中输入的密码是否正确。

import sqlite3
root = Tk()
root.title("LOGBOOK")
root.iconbitmap("C:/Users/victo/Pictures/logo2.ico")
top = Toplevel()
top.iconbitmap("C:/Users/victo/Pictures/logo2.ico")
conn = sqlite3.connect("database.db")
c = conn.cursor()

# create function delete
def delete():
conn = sqlite3.connect("database.db")
c = conn.cursor()
c.execute("DELETE from logdata WHERE oid = " + delete_b.get())
conn.commit()
conn.close()

# create function submit
def submit():
conn = sqlite3.connect("database.db")
c = conn.cursor()
c.execute("INSERT INTO logdata VALUES (:username_email, :password, :game_website)",
{
'username_email': username_email.get(),
'password': password.get(),
'game_website': game_website.get()
})
conn.commit()
conn.close()
username_email.delete(0, END)
password.delete(0, END)
game_website.delete(0, END)

# create function query
def query():
conn = sqlite3.connect("database.db")
c = conn.cursor()
c.execute("SELECT *, oid FROM logdata")
records = c.fetchall()
print_records = ''
for record in records:
print_records += str(record[0]) + " " + str(record[1]) + " " + "t" + str(record[3]) + "n"
query_lab = Label(root, text=print_records)
query_lab.grid(row=8, column=0, columnspan=2)
conn.commit()
conn.close()

# creating a table
# c.execute("""CREATE TABLE logdata (
#        username_email text,
#        password text,
#        game_website text
#        )""")
# entry area
admpw = Entry(top, width=30)
admpw.grid(row=0, column=1, padx=30)
username_email = Entry(root, width=30)
username_email.grid(row=0, column=1, padx=30)
password = Entry(root, width=30)
password.grid(row=1, column=1, padx=30)
game_website = Entry(root, width=30)
game_website.grid(row=2, column=1, padx=30)
delete_b = Entry(root, width=30)
delete_b.grid(row=6, column=1)
# labels
uemail_label = Label(root, text="Username or E-mail")
uemail_label.grid(row=0, column=0)
password_label = Label(root, text="Password")
password_label.grid(row=1, column=0)
game_label = Label(root, text="Game or website")
game_label.grid(row=2, column=0)
delete_label = Label(root, text="OID number")
delete_label.grid(row=6, column=0)
# create buttons
submit = Button(root, text="Add to database", command=submit)
submit.grid(row=3, column=0, columnspan=2, pady=10, padx=10, ipadx=100)
query = Button(root, text="Show records", command=query)
query.grid(row=4, column=0, columnspan=2, pady=10, padx=10, ipadx=108)
delete = Button(root, text="delete a record", command=delete)
delete.grid(row=7, column=0, columnspan=2, pady=10, padx=10, ipadx=103)
login = Button(top, text="Open and access database!")
login.grid(row=1, column=0, columnspan=2)
admpw = Label(top, text="Admin Password: ")
admpw.grid(row=0, column=0)
pw = admpw.get()
if pw == 1234:
top.destroy()

conn.commit()
conn.close()
root.mainloop()

这就是代码的样子rn。

如果有人能帮助我,我会非常高兴。

根据注释中的更新,我会有一个while循环来检查密码,并将其放在登录窗口中,这将是代码中的第一件事。关于这方面的更多信息可以在这里阅读:如何在屏幕中集成Tkinter和Python日志?

相关内容

最新更新