python实现外卖信息管理系统.docx
《python实现外卖信息管理系统.docx》由会员分享,可在线阅读,更多相关《python实现外卖信息管理系统.docx(30页珍藏版)》请在冰豆网上搜索。
![python实现外卖信息管理系统.docx](https://file1.bdocx.com/fileroot1/2022-12/11/d68e37ac-0544-4fb5-a1d4-8ccb1d083cba/d68e37ac-0544-4fb5-a1d4-8ccb1d083cba1.gif)
python实现外卖信息管理系统
python实现外卖信息管理系统
本文为大家分享了python实现外卖信息管理系统的具体代码,供大家参考,具体内容如下
一、需求分析
需求分析包含如下:
1、问题描述
以外卖信息系统管理员身份登陆该系统,实现对店铺信息、派送员信息、客服人员信息、订单信息、配送信息等进行有条件查询以及信息的录入、修改、删除等功能。
2、系统功能描述
(1)信息录入:
使用wxpython设计排版编写窗口界面,给出录入信息的接口,通过python语句实现与数据库的连接,从而向数据库中插入相应数据。
(2)信息修改:
使用wxpython设计排版编写窗口界面,给出修改信息的接口,通过python语句实现与数据库的连接,从而修改数据库中相应数据。
(3)信息查询:
在窗口界面中,通过响应的按钮触发,实现与数据库的连接查询,得到所有在线店铺信息。
(4)数据统计:
在数据库中编写相应的存储过程,输入店铺名称即可select其所管理的派送员和客服人员。
3、登录界面:
源码:
#coding:
utf8
###########################################################################
##PythoncodegeneratedwithwxFormBuilder(versionJun172015)
##http:
//www.wxformbuilder.org/
##
##PLEASEDO"NOT"EDITTHISFILE!
###########################################################################
importwx#导入wxpyhton,pyhton自带的GUI库
#importwx.xrc
importpymysql#用于操作数据库
importsys
reload(sys)
sys.setdefaultencoding('utf8')
###########################################################################
##ClassMyFrame1
###########################################################################
#建一个窗口类MyFrame1继承wx.Frame
classMyFrame1(wx.Frame):
def__init__(self,parent):
#Wx.Frame(parent,id,title,pos,size,style,name)
wx.Frame.__init__(self,parent,id=wx.ID_ANY,title=u"外卖信息管理系统",pos=wx.DefaultPosition,size=wx.Size(610,400),
style=wx.DEFAULT_FRAME_STYLE|wx.TAB_TRAVERSAL)
self.Center()#居中显示
#小构件,如按钮,文本框等被放置在面板窗口。
wx.Panel类通常是被放在一个wxFrame对象中。
这个类也继承自wxWindow类。
self.m_panel1=wx.Panel(self)
#标签,一行或多行的只读文本,Wx.StaticText(parent,id,label,position,size,style)
self.m_staticText1=wx.StaticText(self.m_panel1,wx.ID_ANY,u"关于店铺:
",(20,20))
self.m_button1=wx.Button(self.m_panel1,wx.ID_ANY,u"店铺信息",(130,20),wx.DefaultSize,
style=wx.BORDER_MASK)
self.m_button2=wx.Button(self.m_panel1,wx.ID_ANY,u"店铺上架",(250,20),wx.DefaultSize,
style=wx.BORDER_MASK)
self.m_button3=wx.Button(self.m_panel1,wx.ID_ANY,u"店铺下架",(370,20),wx.DefaultSize,
style=wx.BORDER_MASK)
self.m_staticText2=wx.StaticText(self.m_panel1,wx.ID_ANY,u"关于派送员:
",(20,90))
self.m_button4=wx.Button(self.m_panel1,wx.ID_ANY,u"派送员信息",(130,90),wx.DefaultSize,
style=wx.BORDER_MASK)
self.m_button5=wx.Button(self.m_panel1,wx.ID_ANY,u"聘请派送员",(250,90),wx.DefaultSize,
style=wx.BORDER_MASK)
self.m_button6=wx.Button(self.m_panel1,wx.ID_ANY,u"解雇派送员",(370,90),wx.DefaultSize,
style=wx.BORDER_MASK)
self.m_staticText3=wx.StaticText(self.m_panel1,wx.ID_ANY,u"关于客服人员:
",(20,160))
self.m_button7=wx.Button(self.m_panel1,wx.ID_ANY,u"客服人员信息",(130,160),wx.DefaultSize,
style=wx.BORDER_MASK)
self.m_button8=wx.Button(self.m_panel1,wx.ID_ANY,u"聘请客服人员",(250,160),wx.DefaultSize,
style=wx.BORDER_MASK)
self.m_button9=wx.Button(self.m_panel1,wx.ID_ANY,u"解雇客服人员",(370,160),wx.DefaultSize,
style=wx.BORDER_MASK)
self.m_staticText4=wx.StaticText(self.m_panel1,wx.ID_ANY,u"关于订单:
",(20,230))
self.m_button10=wx.Button(self.m_panel1,wx.ID_ANY,u"订单信息",(130,230),wx.DefaultSize,
style=wx.BORDER_MASK)
self.m_button11=wx.Button(self.m_panel1,wx.ID_ANY,u"学生订餐",(250,230),wx.DefaultSize,
style=wx.BORDER_MASK)
self.m_button12=wx.Button(self.m_panel1,wx.ID_ANY,u"取消订单",(370,230),wx.DefaultSize,
style=wx.BORDER_MASK)
self.m_button13=wx.Button(self.m_panel1,wx.ID_ANY,u"修改订单",(490,230),wx.DefaultSize,
style=wx.BORDER_MASK)
self.m_staticText5=wx.StaticText(self.m_panel1,wx.ID_ANY,u"关于物流:
",(20,300))
self.m_button14=wx.Button(self.m_panel1,wx.ID_ANY,u"配送信息",(130,300),wx.DefaultSize,
style=wx.BORDER_MASK)
self.m_button15=wx.Button(self.m_panel1,wx.ID_ANY,u"安排配送",(250,300),wx.DefaultSize,
style=wx.BORDER_MASK)
self.m_button16=wx.Button(self.m_panel1,wx.ID_ANY,u"取消配送",(370,300),wx.DefaultSize,
style=wx.BORDER_MASK)
#按钮绑定对话框的弹出
#在创建应用程序时,Bind函数可以将按钮的动作与特定的函数绑定,当按钮上有动作时,这个函数就会启动,从而处理响应的事件。
#个Button被单击发生了EVT_BUTTON事件
self.m_button1.Bind(wx.EVT_BUTTON,MyDialog11(None).OnClick)
self.m_button2.Bind(wx.EVT_BUTTON,MyDialog12(None).OnClick)
self.m_button3.Bind(wx.EVT_BUTTON,MyDialog13(None).OnClick)
self.m_button4.Bind(wx.EVT_BUTTON,MyDialog21(None).OnClick)
self.m_button5.Bind(wx.EVT_BUTTON,MyDialog22(None).OnClick)
self.m_button6.Bind(wx.EVT_BUTTON,MyDialog23(None).OnClick)
self.m_button7.Bind(wx.EVT_BUTTON,MyDialog31(None).OnClick)
self.m_button8.Bind(wx.EVT_BUTTON,MyDialog32(None).OnClick)
self.m_button9.Bind(wx.EVT_BUTTON,MyDialog33(None).OnClick)
self.m_button10.Bind(wx.EVT_BUTTON,MyDialog41(None).OnClick)
self.m_button11.Bind(wx.EVT_BUTTON,MyDialog42(None).OnClick)
self.m_button12.Bind(wx.EVT_BUTTON,MyDialog43(None).OnClick)
self.m_button13.Bind(wx.EVT_BUTTON,MyDialog44(None).OnClick)
self.m_button14.Bind(wx.EVT_BUTTON,MyDialog51(None).OnClick)
self.m_button15.Bind(wx.EVT_BUTTON,MyDialog52(None).OnClick)
self.m_button16.Bind(wx.EVT_BUTTON,MyDialog53(None).OnClick)
#设置按钮的背景颜色
self.m_button1.SetBackgroundColour('#0a74f7')
self.m_button1.SetForegroundColour('white')
self.m_button2.SetBackgroundColour('#0a74f7')
self.m_button2.SetForegroundColour('white')
self.m_button3.SetBackgroundColour('#0a74f7')
self.m_button3.SetForegroundColour('white')
self.m_button4.SetBackgroundColour('#238E23')
self.m_button4.SetForegroundColour('white')
self.m_button5.SetBackgroundColour('#238E23')
self.m_button5.SetForegroundColour('white')
self.m_button6.SetBackgroundColour('#238E23')
self.m_button6.SetForegroundColour('white')
self.m_button7.SetBackgroundColour('#6F4242')
self.m_button7.SetForegroundColour('white')
self.m_button8.SetBackgroundColour('#6F4242')
self.m_button8.SetForegroundColour('white')
self.m_button9.SetBackgroundColour('#6F4242')
self.m_button9.SetForegroundColour('white')
self.m_button10.SetBackgroundColour('#8E6B23')
self.m_button10.SetForegroundColour('white')
self.m_button11.SetBackgroundColour('#8E6B23')
self.m_button11.SetForegroundColour('white')
self.m_button12.SetBackgroundColour('#8E6B23')
self.m_button12.SetForegroundColour('white')
self.m_button13.SetBackgroundColour('#8E6B23')
self.m_button13.SetForegroundColour('white')
self.m_button14.SetBackgroundColour('#545454')
self.m_button14.SetForegroundColour('white')
self.m_button15.SetBackgroundColour('#545454')
self.m_button15.SetForegroundColour('white')
self.m_button16.SetBackgroundColour('#545454')
self.m_button16.SetForegroundColour('white')
self.m_panel1.SetBackgroundColour('white')#设置面板的背景颜色
###########################################################################
##ClassMyDialog11
###########################################################################
#一个对话框的类继承wx.Dialog
classMyDialog11(wx.Dialog):
def__init__(self,parent):
wx.Dialog.__init__(self,parent,id=wx.ID_ANY,title=u"店铺信息",pos=wx.DefaultPosition,size=wx.Size(302,362),
style=wx.DEFAULT_DIALOG_STYLE)
self.Center()
self.panel=wx.Panel(self)
self.panel.SetBackgroundColour('white')
wx.StaticText(self.panel,-1,"店铺名称",(20,20))
wx.StaticText(self.panel,-1,"月销量",(80,20))
defOnClick(self,event):
conn=pymysql.connect(host='127.0.0.1',port=3306,user='root',passwd='123',db='project',charset='utf8')
cursor=conn.cursor()
try:
sql="select*fromfoodshop"
cursor.execute(sql)
rs=cursor.fetchall()
h=30
forrowinrs:
h=h+20
shop_name=row[0]
salenum=row[1]#注意数据库中的数据为数字int类型时的读取方式id='%d'%i[0]
wx.StaticText(self.panel,-1,shop_name,(20,h))
wx.StaticText(self.panel,-1,salenum,(80,h))
except:
conn.rollback()
finally:
cursor.close()
conn.close()
self.ShowModal()
###########################################################################
##ClassMyDialog12
###########################################################################
classMyDialog12(wx.Dialog):
def__init__(self,parent):
wx.Dialog.__init__(self,parent,id=wx.ID_ANY,title=u"店铺上架",pos=wx.DefaultPosition,size=wx.Size(302,250),
style=wx.DEFAULT_DIALOG_STYLE)
self.Center()
self.panel=wx.Panel(self)
self.panel.SetBackgroundColour('white')
wx.StaticText(self.panel,-1,"请输入店铺名称:
",(20,20))
#可编辑文本框的创建使用wx.TextCtrl,默认情况下,文本框只能编辑一行文字(无论文字多长均不换行)
self.t1=wx.TextCtrl(self.panel,pos=(130,20),size=(120,25))
wx.StaticText(self.panel,-1,"请输入月销量:
",(20,80))
self.t2=wx.TextCtrl(self.panel,pos=(130,80),size=(120,25))
defOnClick(self,e):
dialog12=MyDialog12(None)
btn=wx.Button(parent=dialog12.panel,label="上架",pos=(20,150),size=(100,45),style=wx.BORDER_MASK)
btn.Bind(wx.EVT_BUTTON,dialog12.insert)
dialog12.ShowModal()
definsert(self,event):
conn=pymysql.connect(host='127.0.0.1',port=3306,user='root',passwd='123',db='project',charset='utf8')
cursor=conn.cursor()
shop_name=self.t1.GetValue().encode('utf8')#注意GetValue()获取的是unicode编码,
salenum=self.t2.GetValue().encode('utf8')#你使用的#coding=utf8,那就对获取的数据.encode('utf8')重新编码
data=(shop_name,salenum)
try:
sql="insertintofoodshopvalues(%s,%s)"
cursor.execute(sql,data)
mit()#提交给后台数据库
dial=wx.MessageDialog(None,'成功上架!
','结果',wx.YES_NO)#创建一个带按钮的消息框,语法是(self,框中内容,框标题,ID)
dial.ShowModal()#显示对话框
except:
conn.rollback()
finally:
cursor.close()
conn.close()
###########################################################################
##ClassMyDialog13
###########################################################################
classMyDialog13(wx.Dialog):
def__init__(self,parent):
wx.Dialog.__init__(self,parent,id=wx.ID_ANY,title=u"店铺下架",pos=wx.DefaultPosition,size=wx.Size(200,200),
style=wx.DEFAULT_DIALOG_STYLE)
self.Center()
self.panel=wx.Panel(self)
self.panel.SetBackgroundColour('white')
wx.StaticText(self.panel,-1,"店铺名称:
",(20,20))
self.t1=wx.TextCtrl(self.panel,pos=(20,50),size=(120,25))
de