def get_value(): name_value = "" occupation_value = "" email_value = "" pin_value = "" dob_value = "" # check for name format if name.get().isalpha(): name_value = name.get() tkinter.Label( account_open_canvas, text=' ', bg='blue', fg='white').grid(row=1, column=1, sticky='w') elif name.get() == "": tkinter.Label(account_open_canvas, text='Name field can not be empty', bg='blue', fg='white').grid(row=1, column=1, sticky='w') else: tkinter.Label(account_open_canvas, text='Name can only be alphabets', bg='blue', fg='white').grid(row=1, column=1, sticky='w') # validate date if dob.get() != "": try: dob_value = dob.get() datetime.datetime.strptime(dob_value, '%d.%m.%Y') except ValueError: tkinter.Label(account_open_canvas, text='Incorrect date format, should be DD.MM.YYYY', bg='blue', fg='white').grid(row=3, column=1, sticky='w') dob_value = "" # default the entry once there is an error else: tkinter.Label(account_open_canvas, text='Date of Birth field can not be empty', bg='blue', fg='white').grid(row=3, column=1, sticky='w') # check for occupation format if occupation.get().isalpha(): occupation_value = occupation.get() tkinter.Label( account_open_canvas, text=' ', bg='blue', fg='white').grid(row=5, column=1, sticky='w') elif occupation.get() == "": tkinter.Label(account_open_canvas, text='Occupation field can not be empty', bg='blue', fg='white').grid(row=5, column=1, sticky='w') else: tkinter.Label(account_open_canvas, text='Occupation can only be alphabets', bg='blue', fg='white').grid(row=5, column=1, sticky='w') # check for email format if email_value == "": tkinter.Label(account_open_canvas, text="e_mail field can not be empty", bg='blue', fg='white').grid(row=8, column=1, sticky='w') elif not validate_email.validate_email(email.get(), verify=False): tkinter.Label(account_open_canvas, text="Incorrect email address", bg='blue', fg='white').grid(row=8, column=1, sticky='w') else: email_value = email.get() # check for pin format try: pin_value = int(pin.get()) if len(pin.get()) != 4: tkinter.Label(account_open_canvas, text='PIN must be four digits', bg='blue', fg='white').grid(row=10, column=1, sticky='w') else: tkinter.Label( account_open_canvas, text=' ', bg='blue', fg='white').grid(row=10, column=1, sticky='w') except ValueError: tkinter.Label(account_open_canvas, text='PIN can only be digits', bg='blue', fg='white').grid(row=10, column=1, sticky='w') if name_value != "" and occupation_value != "" and email_value != "" and pin_value != "" and dob_value != "": new_account = Account() new_account._name = name_value new_account._date_of_birth = dob_value new_account._occupation = occupation_value new_account._account_type = rbvalue.get() new_account._account_number = new_account.generate_account_number() new_account._email = email_value new_account._pin = pin_value new_account._security_question = question_values.get() new_account._security_answer = answer.get() print(new_account)