如何为此python脚本添加多个登录

时间:2018-02-12 22:32:37

标签: python python-3.x user-interface tkinter

嘿,你能帮助我吗?我想为此脚本添加多个登录,每个登录都运行单独的代码。例如,如果您输入了

用户名:xyz

密码:zyz

它会运行一个脚本说

Caused by: java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Boolean
at android.app.SharedPreferencesImpl.getBoolean(SharedPreferencesImpl.java:293)

然后如果你进入

用户名:abc

密码:cba

它将运行此脚本

# file-input.py
f = open('helloworld.txt','r')
message = f.read()
print(message)
f.close()

无论如何这里是完整的代码:

'''Illustrate input and print.'''

applicant = input("Enter the applicant's name: ")
interviewer = input("Enter the interviewer's name: ")
time = input("Enter the appointment time: ")
print(interviewer, "will interview", applicant, "at", time)

# file-output.py
f = open('helloworld.txt','w')
f.write(interviewer)
f.write(" will Interview ")
f.write( applicant)
f.write(" at ")
f.write( time)
f.close()

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

在使用GUI编写应用程序时,在我看来,使用面向对象的方法更容易,更有效。 有关如何使用OOP实现tkinter应用程序的更多详细信息,请查看我的文章Sentdex:

以下代码采用userinputs并检查我们设置的详细信息。如果使用了ceratin用户名和密码,那么它将运行某个功能。目前我只编写了一个结果,即如果用户输入" abc" ...

代码:

from tkinter import *
import tkinter as tk



class Application(Frame):
    def __init__ (self, master):
        Frame.__init__(self,master)

        self.grid()

        self.username1 = "abc"
        self.password1 = "cba"

        username_label = Label(self, text="Username:")
        username_label.grid(row=0, column=0)

        password_label = Label(self, text="Password:")
        password_label.grid(row=1, column=0)

        self.username_entry = Entry(self)
        self.username_entry.grid(row=0, column=1)

        self.password_entry = Entry(self, show='*')
        self.password_entry.grid(row=1, column=1)

        login = Button(self, text="Login", command= self.tryLogin)

        def tryLogin(self):
            usernameInput = self.username_entry.get()
            passwordInput = self.password_entry.get()

            if usernameInput == self.username1 and passwordInput == self.password1:
                self.function1()

            else:
                print("wrong")
 # you can add elif username and password equals something else here but i 
 #suggest using my alternative method explained below using a database.

        def function1(self):
            print("executing function 1")



window = tk.Tk()
app = Application(window)
window.mainloop()

HOWEVER 在我看来,执行您要执行的操作的最佳方法是为您的帐户创建数据库。在该数据库中,您应该默认添加具有将执行的功能的帐户。

例如:

使用字段username,password,function

创建一个数据库(使用sqlite3)

using your example:

然后,当用户登录时,您可以查询数据库。如果用户输入存在的登录详细信息,则返回该相应帐户的functionName并执行它。

*检查此链接,了解如何创建登录功能和数据库: https://www.youtube.com/playlist?list=PLBRzFm0BKuhaQyJ37KiI9rg3R3CC6-v9e

我会告诉你如何做到这一点但你必须做一些研究现在我已经向你指出了两个最好的人,他们会介绍如何做所有这些事情。

祝你好运m8!