Я хочу создать небольшую базу данных и сделать так, чтобы вам нужен пароль для доступа к основному экрану базы данных. - PullRequest
0 голосов
/ 07 мая 2020

меня зовут Виктор и мне 15 лет. Я новичок в программировании и нуждаюсь в помощи :) В настоящее время я работаю над базой данных, чтобы сохранить свои пароли и информацию о пользователях. Я нахожусь в точке, где база данных работает нормально. Я не знаю, как сделать так, чтобы мой верхний уровень в tkinter был доступен, а мое окно root - нет, и я не знаю, как проверить, является ли пароль, введенный в поле пароля, правильным паролем.

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.

Я был бы очень рад, если бы кто-нибудь мог мне помочь.

1 Ответ

0 голосов
/ 10 мая 2020

Судя по обновлениям в комментариях, у меня было бы время l oop, чтобы проверить пароль, и он будет в окне входа в систему, что будет первым делом в коде. подробнее об этом можно прочитать здесь: Как я могу интегрировать Tkinter с Python экраном входа в систему?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...