Я довольно новый для программирования.
import pymongo
from tkinter import *
from tkinter import ttk
class Input:
def __init__(self, root,):
self.myclient = pymongo.MongoClient("mongodb://localhost:27017/")
self.mydb = self.myclient["mydatabase"]
self.mycol = self.mydb["input"]
title_label = Label(root, text="input")
title_label.grid(row=0, column=0, padx=10, pady=10, sticky=W)
self.input_value = StringVar(root, value="")
self.input = ttk.Entry(root, textvariable=self.input_value)
self.input.grid(row=0, column=1, padx=10, pady=10, sticky=W)
self.submit_button = ttk.Button(root,
text="Submit",
command=self.submit())
self.submit_button.grid(row=1, column=0,
padx=10, pady=10, sticky=W)
def submit(self):
entry = {"input": self.input_value}
self.mycol.insert(entry)
root = Tk()
In = Input(root)
root.mainloop()
При попытке запустить это я получаю
bson.errors.InvalidDocument: Cannot encode object: <tkinter.StringVar object at 0x000001EC62343908>
Я пытался преобразовать input_value в 'нормальную' строку
self.input_value = str(StringVar(root, value=""))
Делая это, я получаюпрограмма запускается, но что бы я ни вводил в поле ввода, она записывает в базу данных «PY_VAR0».
Что я делаю не так?