可不可以将最终的结果也由tkinter的界面呈现呢?目前是只能在output打出来
```python
from tkinter import ttk
import pymssql
import tkinter as tk
import tkinter.messagebox
#订单的添加
def kadd():
# 连接数据库
connect = pymssql.connect(host = "127.0.0.1",database = "茶托邦重大店",charset="utf8") # 建立连接
# 创建光标
cursor = connect.cursor()
# 编写SQL语句
sql1 = "INSERT INTO 订单 (订单号, 下单时间,奶茶名字,数量)VALUES('%d','%s','%s','%d')" % (v1.get(), v2.get(),v3.get(),v4.get())
# 执行SQL语句,并且输出完成提示信息,否则回滚
try:
cursor.execute(sql1)
connect.commit()
tkinter.messagebox.showinfo("提示", "数据添加成功")
except:
connect.rollback()
tkinter.messagebox.showinfo("提示", "订单编号不存在")
# 关闭数据库连接,防止泄露
cursor.close()
connect.close()
#删除操作
def delete():
connect = pymssql.connect(host = "127.0.0.1",database = "茶托邦重大店",charset="utf8")
cursor=connect.cursor()
sql2 = "delete from 订单 where 订单号='%d'" % (v5.get())
try:
cursor.execute(sql2)
connect.commit()
tkinter.messagebox.showinfo("提示","数据删除成功")
except:
connect.rollback()
tkinter.messagebox.showinfo("提示", "所删除的订单不存在")
cursor.close()
connect.close()
#查询订单信息
def select():
connect1 = pymssql.connect(host = "127.0.0.1",database = "茶托邦重大店",charset="utf8")
cursor = connect1.cursor()
sql3 = "select*from 订单 WHERE 下单时间='%s'"%(v6.get())
try:
cursor.execute(sql3)
results = cursor.fetchall()
print(results)
except:
return
cursor.close()
connect1.close()
#添加订单界面
def Staff_hadd():
#构建全集变量,方便上面的函数调用
global window_function
global v1,v2,v3,v4
#生成窗口
window_function=tk.Tk()
#窗口标题
window_function.title("茶托邦管理系统")
#窗口大小
window_function.geometry('400x300')
#生成标签
tk.Label(window_function, text="添加新订单", font=("黑体", 20)).grid(row=0,column=1,pady=10)
tk.Label(window_function, text="请输入订单号:").grid(row=1, column=0, padx=20, pady=20)
tk.Label(window_function, text="请输入下单时间:").grid(row=2, column=0, padx=20, pady=20)
tk.Label(window_function, text="请输入奶茶名字:").grid(row=3, column=0, padx=20, pady=20)
tk.Label(window_function, text="请输入数量:").grid(row=4, column=0, padx=20, pady=20)
# 定义变量记录输入信息
v1 = tk.StringVar()
v2 = tk.StringVar()
v3 = tk.StringVar()
v4 = tk.StringVar()
#输入框
entry1 = tk.Entry(window_function, show=None, textvariable=v1).grid(row=1, column=1)
entry2 = tk.Entry(window_function, show=None, textvariable=v2).grid(row=2, column=1)
entry3 = tk.Entry(window_function, show=None, textvariable=v3).grid(row=3, column=1)
entry4 = tk.Entry(window_function, show=None, textvariable=v4).grid(row=4, column=1)
#生成按钮
button = tk.Button(window_function, text="添加", command=kadd).place(relx=0.3,rely=0.9)
button2 = tk.Button(window_function, text="返回", command=chaneg_main).place(relx=0.5,rely=0.9)
#显示窗口
window_function.mainloop()
#删除订单界面
def Staff_delete():
global window_function
global v5
window_function=tk.Tk()
window_function.title("茶托邦管理系统")
window_function.geometry('400x250')
tk.Label(window_function, text="删除订单", font=("黑体", 20)).grid(row=0,column=1,pady=20)
tk.Label(window_function,text="请输入订单号:").grid(row = 1,column =0,padx=20)
v5 =tk.StringVar()
entry1=tk.Entry(window_function,show=None,textvariable=v5).grid(row = 1,column =1,pady=40)
button = tk.Button(window_function, text="删除", command=delete,anchor = 's').place(relx=0.2,rely=0.7)
button2 = tk.Button(window_function, text="返回", command=chaneg_main).place(relx=0.4,rely=0.7)
window_function.mainloop()
#查找订单信息界面
def Staff_select():
global window_function
global v6
window_function=tk.Tk()
window_function.title("茶托邦管理系统")
window_function.geometry('600x200')
tk.Label(window_function, text="查找订单信息", font=("黑体", 20)).grid(row=0,column=1,pady=20)
tk.Label(window_function,text="请输入下单时间:").grid(row = 1,column =0,padx=20)
v6 =tk.StringVar()
entry1=tk.Entry(window_function,show=None,textvariable=v6).grid(row = 1,column =1,pady=20)
button = tk.Button(window_function, text="查找", command=select).place(relx=0.3,rely=0.8)
button2 = tk.Button(window_function, text="返回", command=chaneg_main).place(relx=0.5,rely=0.8)
window_function.mainloop()
#添加订单界面跳转
def change_gadd():
#销毁画布
window.destroy()
#生成新界面
Staff_hadd()
#删除订单界面跳转
def change_delete():
window.destroy()
Staff_delete()
#条件查询订单界面跳转
def change_select():
window.destroy()
Staff_select()
#订单界面跳转
def chaneg_main():
window_function.destroy()
mainpage()
def chan_main():
from choicepage import choicepage
window.destroy()
choicepage()
#订单界面
def mainpage():
global window
window = tk.Tk()
window.title("茶托邦管理系统")
window.geometry('500x450')
#生成画布,销毁后生成新的画布实现跳转
page = tk.Frame(window)
page.pack()
tk.Label(window, text="欢迎使用茶托邦信息管理系统", font=("黑体", 20)).pack(pady=10)
button1 = tk.Button(window, text="删除订单信息", command=change_delete).pack(pady=10)
button2 = tk.Button(window, text="添加订单信息", command=change_gadd).pack(pady=10)
button3 = tk.Button(window, text="查找订单信息", command=change_select).pack(pady=10)
button4 = tk.Button(window, text="退出", command=chan_main).pack(pady=10)
window.mainloop()
#主函数生成主界面
if __name__ == '__main__':
mainpage()
另外,我的建库是这样的:
import pymssql
connect = pymssql.connect(host = "127.0.0.1",database = "茶托邦重大店",charset="utf8") # 建立连接
if connect:
print("successful connected")
cursor = connect.cursor() # 创建一个游标对象,python里的sql语句都要通过cursor来执行
cursor.execute("CREATE TABLE 订单 (订单号 INT PRIMARY KEY,下单时间 DATETIME,订单金额 DECIMAL(10, 2))")
cursor.execute("CREATE TABLE 商品详情 (订单号 INT,奶茶名字 VARCHAR(50),数量 INT,PRIMARY KEY (订单号, 奶茶名字),FOREIGN KEY (订单号) REFERENCES 订单(订单号))")
cursor.execute("CREATE TABLE 奶茶 (奶茶名字 VARCHAR(50) PRIMARY KEY,售价 DECIMAL(10, 2),成本 DECIMAL(10, 2))")
cursor.execute("CREATE TABLE 配方 (奶茶名字 VARCHAR(50),糖精 DECIMAL(10, 2),奶茶粉 DECIMAL(10, 2),芋圆 DECIMAL(10, 2),冻冻 DECIMAL(10, 2),椰果 DECIMAL(10, 2),珍珠 DECIMAL(10, 2),脆啵啵 DECIMAL(10, 2),PRIMARY KEY (奶茶名字),FOREIGN KEY (奶茶名字) REFERENCES 奶茶(奶茶名字))")
cursor.execute("CREATE TABLE 财务 (日期 DATE PRIMARY KEY,销售额 DECIMAL(10, 2),成本 DECIMAL(10, 2),利润 DECIMAL(10, 2)) ")
connect.commit() #提交
cursor.close() # 关闭游标
connect.close() # 关闭连接
```
Tkinter 模块(Tk 接口)是 Python 的标准 Tk GUI 工具包的接口 .Tk 和 Tkinter 可以在大多数的 Unix 平台下使用,同样可以应用在 Windows 和 Macintosh 系统里。Tk8.0 的后续版本可以实现本地窗口风格,并良好地运行在绝大多数平台中。Python 使用 Tkinter 可以快速的创建 GUI 应用程序。由于 Tkinter 是内置到 python 的安装包中、只要安装好 Python 之后就能 import Tkinter 库、而且 IDLE 也是用 Tkinter 编写而成、对于简单的图形界面 Tkinter 还是能应付自如。
要在tkinter界面上展示最终的数据库结果,可以按照以下步骤进行操作:
import tkinter as tk
import pandas as pd
window = tk.Tk()
window.title("数据库查询结果")
# 假设数据库连接已经建立,cur为游标对象
sql = 'SELECT * FROM student_base_info'
cur.execute(sql)
results = cur.fetchall()
df = pd.DataFrame(results, columns=['id', 'first_name', 'last_name', 'age', 'dept_id'])
table = pt.Table(window, dataframe=df)
table.pack()
注意:在这一步之前,需要先安装pandastable模块,你可以使用以下命令进行安装:
pip install pandastable
window.mainloop()
这样,就可以在tkinter界面上展示最终的数据库结果了。完整的代码如下:
import tkinter as tk
import pandas as pd
from pandastable import Table as pt
window = tk.Tk()
window.title("数据库查询结果")
# 连接数据库并执行查询操作
# 假设数据库连接已经建立,cur为游标对象
sql = 'SELECT * FROM student_base_info'
cur.execute(sql)
results = cur.fetchall()
# 将查询结果转换为DataFrame格式
df = pd.DataFrame(results, columns=['id', 'first_name', 'last_name', 'age', 'dept_id'])
# 创建一个tkinter的Table组件,用于展示数据
table = pt.Table(window, dataframe=df)
table.pack()
# 运行tkinter的主循环,显示窗口并展示数据
window.mainloop()
注意:以上代码仅为示例,需要根据实际情况进行修改和适配。如果数据库连接、查询操作等部分代码有变动,请根据具体情况进行修改。