我对Python相当陌生,但是对于团队设计项目,我需要创建一个代码,将信息输入到连接到mysql表的Tkinter窗口中,并相应地更新该表。如果再次输入相同的ID,则应更新数量+1:
from Tkinter import*
import tkMessageBox
import tkFont
import mysql.connector
import time
def AddItem():
print "Added Item"
print "ID:" + ID.get()
print "Item Name:" + ItemName.get()
print "Price Per Item:" + PricePerItem.get()
print "Manufacturer:" + Manufacturer.get()
s=插入库存。。。如果抛出循环,我可以将信息输入Tkinter窗口,但当我选择Add Item按钮时,会出现以下错误:
编程错误:无法处理格式参数;“MySQLConverter”对象没有属性“\u entry”to“u mysql”
^{pr2}$我已经试了好几个小时用“s”来做各种事情,但是我很难找到正确的语法来使用。在
下面是Tkinter窗口代码,如果有帮助的话。在
def InformationInput():
BigFont=tkFont.Font(family="Arial", size=14, weight="bold")
root.title("Enter Item Information")
root.geometry("1000x400")
root.bind("<Return>", lambda event: AddItem())
lbl1 = Label(root, text="ID:")
lbl2 = Label(root, text="Item Name:")
lbl3 = Label(root, text="Price Per Item:")
lbl4 = Label(root, text="Manufacturer:")
lbl9 = Label(root, text="Enter Item Information", height=3, fg="red", font=BigFont)
global ID, ItemName, PricePerItem, Manufacturer
ID = Entry(root, width=25, textvariable=ID)
ItemName = Entry(root, width=20, textvariable=ItemName)
PricePerItem = Entry(root, width=10, textvariable=PricePerItem)
Manufacturer = Entry(root, width=25, textvariable=Manufacturer)
button1 = Button(root, text="Add Item", command=AddItem, width=15)
button2 = Button(root, text="Clear Entries", command=ClearEntries, width=15)
button3 = Button(root, text="Exit", command=root.destroy, width=15)
lbl9.grid(column=2, row=1, columnspan=5)
lbl1.grid(column = 1, row = 4, sticky="nw")
ID.grid(column = 2, row = 4, sticky="nw")
lbl2.grid(column = 3, row = 4)
ItemName.grid(column = 4, row = 4)
lbl3.grid(column = 5, row = 4)
PricePerItem.grid(column = 6, row = 4, sticky="w")
lbl4.grid(column = 3, row = 10)
Manufacturer.grid(column = 4, row = 10)
button1.grid(column=3, row=15, sticky="e", pady=20)
button2.grid(column=4, row=15)
button3.grid(column=5, row=15, sticky="w")
root = Tk()
ID = IntVar()
ItemName = StringVar()
PricePerItem = IntVar()
Manufacturer = StringVar()
Quantity = IntVar()
InformationInput()
root.mainloop()
您必须在查询中使用参数标记,否则数据库驱动程序(在本例中为MySQL Connector/Python)将通过错误。此外,还必须传递可以转换的值。
MySQLConverter
不知道如何转换entry
-对象,所以它告诉你它不能转换它(尽管它可以更显式一些)。在以下是一个示例(简化):
^{1}$我冒昧opening a bug report改进了错误消息。在
其他备注:我认为插入时不需要提供ID?通常是自动递增。在
相关问题 更多 >
编程相关推荐