Это первый раз, когда я публикую сообщения, поэтому надеюсь, что я делаю это правильно.
Может кто-нибудь помочь мне с проблемой, которую я, кажется, не могу решить. У меня был хороший Google, но не нашел ответа. Я использую Python 3.7 и SQL3
Я пытаюсь предотвратить запись записи в базу данных, если поле 'f_name' пустое.
Я попытался поставить условие на conn.commit () из-за отсутствия записи - не сработало. Я попытался выполнить условие и сделать отступ c .execute, если f-name пустое, но это не сработало, так как, я думаю, оно еще не получило ввода.
если я распечатываю f_name после c .execute, я получаю «.! Entry2» независимо от того, есть ли вход или нет, если это имеет какое-то значение или дает подсказку. Я предполагаю, что он записывается непосредственно в базу данных и не существует как переменная.
Проверка ошибок, которую я использую, заключается в следующем (я успешно использовал ее в другом месте, поэтому все должно быть в порядке)
if f_name =="":
print("No valid Data in First name field")
return
else:
conn.commit()
и я попытался использовать проверку ошибок на conn.commit (), но я предполагаю, что это автоматическая фиксация.
Может кто-нибудь дать мне представление о том, как предотвратить прием пустого f_name в этом сценарии?
Вот вызываемый код -
def submit():
# Connect to database
conn = sqlite3.connect('address_book.db')
c = conn.cursor()
six_month_reminder = ("f")
annual_reminder = ("f")
six_month_reminder_sent = ("f")
annual_reminder_sent = ("f")
# Insert Into Table
c.execute("INSERT INTO addresses VALUES (:f_name, :l_name, :address, :city, :state, :zipcode, :six_month_reminder, :annual_reminder, :six_month_reminder_sent, :annual_reminder_sent)",
{
'f_name': f_name.get(),
'l_name': l_name.get(),
'address': address.get(),
'city': city.get(),
'state': state.get(),
'zipcode': zipcode.get(),
'six_month_reminder': six_month_reminder,
'annual_reminder': annual_reminder,
'six_month_reminder_sent': six_month_reminder_sent,
'annual_reminder_sent':annual_reminder_sent
})
conn.commit()
conn.close()