объект str не имеет атрибута get - PullRequest
0 голосов
/ 28 мая 2020

Я создаю соединение с mysql через tkinter. Мне нужно ввести значения даты в запись и сохранить их в базе данных. Это код

def dynamic_data_entry():
    unix=int(time.time())
    date=str(datetime.datetime.fromtimestamp(unix).strftime("%Y-%m-%d %H:%M:%S"))
    keyword="python"
    value=random.randrange(0,10)
    bname=StringVar()
    auth=StringVar()
    reiss=StringVar()
    gen=StringVar()
    libcur.execute("insert into libarius(Book_Name,Author,DOI,DOR,Re_issues,Genre) values (%s,%s,%s,%s,%s,%s)", (bname.get(),auth.get(),date.get(),date.get(),reiss.get(),gen.get()))
    libcur.close()
    libcur.commit()

Но я получаю следующую ошибку:

runfile('C:/Users/sapna/Desktop/SAMARTH.py', wdir='C:/Users/sapna/Desktop')
Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\Users\sapna\anaconda3\lib\tkinter\__init__.py", line 1705, in __call__
    return self.func(*args)
  File "C:\Users\sapna\Desktop\SAMARTH.py", line 64, in dynamic_data_entry
    libcur.execute("insert into libarius(Book_Name,Author,DOI,DOR,Re_issues,Genre) values (%s,%s,%s,%s,%s,%s)", (bname.get(),auth.get(),date.get(),date.get(),reiss.get(),gen.get()))
AttributeError: 'str' object has no attribute 'get'

Как мне решить эту проблему, большое спасибо

1 Ответ

2 голосов
/ 28 мая 2020

У вас есть date.get(), но date - это строка, а не StringVar. Вам не нужно вызывать get(), чтобы получить его значение.

    libcur.execute("insert into libarius(Book_Name,Author,DOI,DOR,Re_issues,Genre) values (%s,%s,%s,%s,%s,%s)", 
        (bname.get(),auth.get(),date,date,reiss.get(),gen.get()))

Кстати, вы никогда не используете переменные keyword или value.

И commit() метод должен выполняться на объекте подключения, а не на курсоре.

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