加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

python实现外卖信息管理系统

发布时间:2020-12-14 19:42:27 所属栏目:Java 来源:网络整理
导读:本文为大家分享了python实现外卖信息管理系统的具体代码,供大家参考,具体内容如下 一、需求分析 需求分析包含如下: 1、问题描述 以外卖信息系统管理员身份登陆该系统,实现对店铺信息、派送员信息、客服人员信息、订单信息、配送信息等进行有条件查询以及

本文为大家分享了python实现外卖信息管理系统的具体代码,供大家参考,具体内容如下

一、需求分析

需求分析包含如下:

1、问题描述

以外卖信息系统管理员身份登陆该系统,实现对店铺信息、派送员信息、客服人员信息、订单信息、配送信息等进行有条件查询以及信息的录入、修改、删除等功能。

2、系统功能描述

(1)信息录入:使用wxpython设计排版编写窗口界面,给出录入信息的接口,通过python语句实现与数据库的连接,从而向数据库中插入相应数据。

(2)信息修改:使用wxpython设计排版编写窗口界面,给出修改信息的接口,通过python语句实现与数据库的连接,从而修改数据库中相应数据。

(3)信息查询:在窗口界面中,通过响应的按钮触发,实现与数据库的连接查询,得到所有在线店铺信息。

(4)数据统计:在数据库中编写相应的存储过程,输入店铺名称即可select其所管理的派送员和客服人员。

3、系统功能模块图

二、概念结构设计

系统整体的E-R模型:

三、逻辑结构设计

本系统所用到的表结构以及其联系:

1、店铺基本信息foodshop表

 

主键:shop_name

2、客服基本信息server表

主键:server_id

外键:shopname_shop_name

参考表:shopname 参考属性:shop_name

3、派送员基本信息courier表

 

主键:courier_id

外键:shopname_shop_name

参考表:shopname 参考属性:shop_name

4、学生基本信息student表

 

主键:student_phone

5、订单基本信息book表

 

主键:(student_phone,server_id)

外键:student_phone,参考表student,参考属性student_phone

外键:server_id,参考表server,参考属性server_id

6、配送基本信息delivery表

主键:(student_phone,courier_id)

外键:student_phone,参考表student,参考属性student_phone

外键:courier_id,参考表courier,参考属性courier_id

四、具体实现

登陆界面:

附上源代码:

# coding:utf8

###########################################################################
## Python code generated with wxFormBuilder (version Jun 17 2015)
## http://www.wxformbuilder.org/
##
## PLEASE DO "NOT" EDIT THIS FILE!
###########################################################################

import wx #导入wxpyhton,pyhton自带的GUI库
#import wx.xrc

import pymysql #用于操作数据库
import sys
reload(sys)
sys.setdefaultencoding('utf8')

###########################################################################
## Class MyFrame1
###########################################################################

#建一个窗口类MyFrame1继承wx.Frame
class MyFrame1(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,label,position,style)
 self.m_staticText1 = wx.StaticText(self.m_panel1,wx.ID_ANY,u"关于店铺:",(20,20))
 self.m_button1 = wx.Button(self.m_panel1,u"店铺信息",(130,20),wx.DefaultSize,style=wx.BORDER_MASK)
 self.m_button2 = wx.Button(self.m_panel1,u"店铺上架",(250,style=wx.BORDER_MASK)
 self.m_button3 = wx.Button(self.m_panel1,u"店铺下架",(370,style=wx.BORDER_MASK)

 self.m_staticText2 = wx.StaticText(self.m_panel1,u"关于派送员:",90))
 self.m_button4 = wx.Button(self.m_panel1,u"派送员信息",90),style=wx.BORDER_MASK)
 self.m_button5 = wx.Button(self.m_panel1,u"聘请派送员",style=wx.BORDER_MASK)
 self.m_button6 = wx.Button(self.m_panel1,u"解雇派送员",style=wx.BORDER_MASK)

 self.m_staticText3 = wx.StaticText(self.m_panel1,u"关于客服人员:",160))
 self.m_button7 = wx.Button(self.m_panel1,u"客服人员信息",160),style=wx.BORDER_MASK)
 self.m_button8 = wx.Button(self.m_panel1,u"聘请客服人员",style=wx.BORDER_MASK)
 self.m_button9 = wx.Button(self.m_panel1,u"解雇客服人员",style=wx.BORDER_MASK)

 self.m_staticText4 = wx.StaticText(self.m_panel1,u"关于订单:",230))
 self.m_button10 = wx.Button(self.m_panel1,u"订单信息",230),style=wx.BORDER_MASK)
 self.m_button11 = wx.Button(self.m_panel1,u"学生订餐",style=wx.BORDER_MASK)
 self.m_button12 = wx.Button(self.m_panel1,u"取消订单",style=wx.BORDER_MASK)
 self.m_button13 = wx.Button(self.m_panel1,u"修改订单",(490,style=wx.BORDER_MASK)

 self.m_staticText5 = wx.StaticText(self.m_panel1,u"关于物流:",300))
 self.m_button14 = wx.Button(self.m_panel1,u"配送信息",300),style=wx.BORDER_MASK)
 self.m_button15 = wx.Button(self.m_panel1,u"安排配送",style=wx.BORDER_MASK)
 self.m_button16 = wx.Button(self.m_panel1,u"取消配送",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') #设置面板的背景颜色


###########################################################################
## Class MyDialog11
###########################################################################

#一个对话框的类继承wx.Dialog
class MyDialog11(wx.Dialog):
 def __init__(self,parent):
 wx.Dialog.__init__(self,title=u"店铺信息",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))
 wx.StaticText(self.panel,"月销量",(80,20))

 def OnClick(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 * from foodshop"
  cursor.execute(sql)
  rs = cursor.fetchall()
  h = 30
  for row in rs:
  h = h + 20
  shop_name = row[0]
  salenum = row[1] #注意数据库中的数据为数字 int 类型时的读取方式 id = '%d' % i[0]
  wx.StaticText(self.panel,shop_name,h))
  wx.StaticText(self.panel,salenum,h))
 except:
  conn.rollback()
 finally:
  cursor.close()
  conn.close()

 self.ShowModal()


###########################################################################
## Class MyDialog12
###########################################################################

class MyDialog12(wx.Dialog):
 def __init__(self,title=u"店铺上架",250),"请输入店铺名称:",20))
 # 可编辑文本框的创建使用wx.TextCtrl,默认情况下,文本框只能编辑一行文字(无论文字多长均不换行)
 self.t1 = wx.TextCtrl(self.panel,pos=(130,size=(120,25))

 wx.StaticText(self.panel,"请输入月销量:",80))
 self.t2 = wx.TextCtrl(self.panel,80),25))


 def OnClick(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()

 def insert(self,event):
 conn = pymysql.connect(host='127.0.0.1',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 = "insert into foodshop values (%s,%s)"
  cursor.execute(sql,data)
  conn.commit() #提交给后台数据库
  dial = wx.MessageDialog(None,'成功上架!','结果',wx.YES_NO) # 创建一个带按钮的消息框,语法是(self,框中内容,框标题,ID)
  dial.ShowModal() # 显示对话框
 except:
  conn.rollback()
 finally:
  cursor.close()
  conn.close()

###########################################################################
## Class MyDialog13
###########################################################################

class MyDialog13(wx.Dialog):
 def __init__(self,title=u"店铺下架",size=wx.Size(200,200),"店铺名称:",20))
 self.t1 = wx.TextCtrl(self.panel,50),e):
 dialog13 = MyDialog13(None)
 btn = wx.Button(parent=dialog13.panel,label="下架",size=(90,40))
 btn.Bind(wx.EVT_BUTTON,dialog13.delete)
 dialog13.ShowModal()

 def delete(self,e):
 conn = pymysql.connect(host='127.0.0.1',charset='utf8')
 cursor = conn.cursor()

 shop_name = self.t1.GetValue().encode('utf8') # 注意GetValue()获取的是unicode编码
 try:
  sql = "delete from foodshop where shop_name=%s"
  cursor.execute(sql,shop_name)
  conn.commit()
  dial = wx.MessageDialog(None,'成功下架!',wx.YES_NO) # 创建一个带按钮的对话框,内容,标题,ID)
  dial.ShowModal() # 显示对话框
 except:
  conn.rollback()
 finally:
  cursor.close()
  conn.close()

###########################################################################
## Class MyDialog21
###########################################################################

class MyDialog21(wx.Dialog):
 def __init__(self,title=u"派送员信息",size=wx.Size(400,415),style=wx.DEFAULT_DIALOG_STYLE)

 self.Center()
 self.panel = wx.Panel(self)
 self.panel.SetBackgroundColour('white')

 wx.StaticText(self.panel,pos=(90,25))
 #btn = wx.Button(parent=self.panel,label="查询",pos=(240,size=(70,25))
 #btn.Bind(wx.EVT_BUTTON,self.find)
 wx.StaticText(self.panel,"派送员编号",60))
 wx.StaticText(self.panel,"派送员姓名",(120,"派送员电话",(220,60))

 def OnClick(self,event):
 dialog21 = MyDialog21(None)
 btn = wx.Button(parent=dialog21.panel,25))
 btn.Bind(wx.EVT_BUTTON,dialog21.find)
 dialog21.ShowModal()

 def find(self,event):
 '''
 if self.t1.GetValue() == '肯德基':
  wx.StaticText(self.panel,'派送员编号','派送员姓名',h))
 '''
 conn = pymysql.connect(host='127.0.0.1',charset='utf8')
 cursor = conn.cursor()
 try:
  sql = "select * from courier"
  cursor.execute(sql)
  rs = cursor.fetchall()
  h = 80
  for row in rs:
  if row[3] == self.t1.GetValue():
   h = h + 20
   courier_id = row[0]
   courier_name = row[1]
   courier_phone = row[2]
   wx.StaticText(self.panel,courier_id,h))
   wx.StaticText(self.panel,courier_name,courier_phone,h))
 except:
  conn.rollback()
 finally:
  cursor.close()
  conn.close()


###########################################################################
## Class MyDialog22
###########################################################################

class MyDialog22(wx.Dialog):
 def __init__(self,title=u"聘请派送员",350),pos=(140,"请输入派送员编号:","请输入派送员姓名:",140))
 self.t3 = wx.TextCtrl(self.panel,140),"请输入派送员电话:",200))
 self.t4 = wx.TextCtrl(self.panel,25))

 def OnClick(self,e):
 dialog22 = MyDialog22(None)
 btn = wx.Button(parent=dialog22.panel,label="聘请",45))
 btn.Bind(wx.EVT_BUTTON,dialog22.insert)
 dialog22.ShowModal()

 def insert(self,charset='utf8')
 cursor = conn.cursor()

 shop_name = self.t1.GetValue().encode('utf8') # 注意GetValue()获取的是unicode编码,
 courier_id = self.t2.GetValue().encode('utf8') # 你使用的#coding=utf8,那就对获取的数据.encode('utf8')
 courier_name = self.t3.GetValue().encode('utf8')
 courier_phone = self.t4.GetValue().encode('utf8')

 data = (courier_id,shop_name)

 try:
  sql = "insert into courier values (%s,%s,data)
  conn.commit()
  dial = wx.MessageDialog(None,'成功聘请派送员!',ID)
  dial.ShowModal() # 显示对话框
 except:
  conn.rollback()
 finally:
  cursor.close()
  conn.close()


###########################################################################
## Class MyDialog23
###########################################################################

class MyDialog23(wx.Dialog):
 def __init__(self,title=u"解雇派送员","派送员编号:",e):
 dialog23 = MyDialog23(None)
 btn = wx.Button(parent=dialog23.panel,label="解雇",dialog23.delete)
 dialog23.ShowModal()

 def delete(self,charset='utf8')
 cursor = conn.cursor()

 courier_id = self.t1.GetValue().encode('utf8') # 注意GetValue()获取的是unicode编码
 try:
  sql = "delete from courier where courier_id=%s"
  cursor.execute(sql,courier_id)
  conn.commit()
  dial = wx.MessageDialog(None,'成功解雇派送员!',ID)
  dial.ShowModal() # 显示对话框
 except:
  conn.rollback()
 finally:
  cursor.close()
  conn.close()


###########################################################################
## Class MyDialog31
###########################################################################

class MyDialog31(wx.Dialog):
 def __init__(self,title=u"客服人员信息",401),25))
 # btn = wx.Button(parent=self.panel,25))
 # btn.Bind(wx.EVT_BUTTON,"客服人员编号","客服人员姓名",e):
 dialog31 = MyDialog31(None)
 btn = wx.Button(parent=dialog31.panel,dialog31.find)
 dialog31.ShowModal()

 def find(self,charset='utf8')
 cursor = conn.cursor()
 try:
  sql = "select * from server"
  cursor.execute(sql)
  rs = cursor.fetchall()
  h = 80
  for row in rs:
  if row[2] == self.t1.GetValue():
   h = h + 20
   server_id = row[0]
   server_name = row[1]
   wx.StaticText(self.panel,server_id,server_name,h))
 except:
  conn.rollback()
 finally:
  cursor.close()
  conn.close()


###########################################################################
## Class MyDialog32
###########################################################################

class MyDialog32(wx.Dialog):
 def __init__(self,title=u"聘请客服人员",pos=(160,"请输入客服人员编号:","请输入客服人员姓名:",e):
 dialog32 = MyDialog32(None)
 btn = wx.Button(parent=dialog32.panel,dialog32.insert)
 dialog32.ShowModal()

 def insert(self,charset='utf8')
 cursor = conn.cursor()

 shop_name = self.t1.GetValue().encode('utf8') # 注意GetValue()获取的是unicode编码,
 server_id = self.t2.GetValue().encode('utf8') # 你使用的#coding=utf8,那就对获取的数据.encode('utf8')
 server_name = self.t3.GetValue().encode('utf8')

 data = (server_id,shop_name)

 try:
  sql = "insert into server values(%s,'成功聘请客服!',ID)
  dial.ShowModal() # 显示对话框
 except:
  conn.rollback()
 finally:
  cursor.close()
  conn.close()


###########################################################################
## Class MyDialog33
###########################################################################

class MyDialog33(wx.Dialog):
 def __init__(self,title=u"解雇客服人员","客服人员编号:",e):
 dialog33 = MyDialog33(None)
 btn = wx.Button(parent=dialog33.panel,dialog33.delete)
 dialog33.ShowModal()

 def delete(self,charset='utf8')
 cursor = conn.cursor()

 server_id = self.t1.GetValue().encode('utf8') # 注意GetValue()获取的是unicode编码
 try:
  sql = "delete from server where server_id=%s"
  cursor.execute(sql,server_id)
  conn.commit()
  dial = wx.MessageDialog(None,'成功解雇客服!',ID)
  dial.ShowModal() # 显示对话框
 except:
  conn.rollback()
 finally:
  cursor.close()
  conn.close()


###########################################################################
## Class MyDialog41
###########################################################################

class MyDialog41(wx.Dialog):
 def __init__(self,title=u"订单信息",size=wx.Size(500,"买家电话:","订单编号","订单金额","订餐方式",(320,e):
 dialog41 = MyDialog41(None)
 btn = wx.Button(parent=dialog41.panel,dialog41.find)
 dialog41.ShowModal()

 def find(self,charset='utf8')
 cursor = conn.cursor()
 try:
  sql = "select * from book"
  cursor.execute(sql)
  rs = cursor.fetchall()
  h = 80
  for row in rs:
  if row[0] == self.t1.GetValue():
   h = h + 20
   server_id = row[1]
   order_id = row[2]
   order_money = row[3]
   order_way = row[4]
   wx.StaticText(self.panel,order_id,order_money,order_way,h))
 except:
  conn.rollback()
 finally:
  cursor.close()
  conn.close()


###########################################################################
## Class MyDialog42
###########################################################################

class MyDialog42(wx.Dialog):
 def __init__(self,title=u"学生订餐","请输入买家电话:",pos=(150,"请输入订单编号:","请输入订单金额:","请输入订餐方式:",260))
 self.t5 = wx.TextCtrl(self.panel,260),e):
 dialog42 = MyDialog42(None)
 btn = wx.Button(parent=dialog42.panel,label="订餐",310),dialog42.insert)
 dialog42.ShowModal()

 def insert(self,charset='utf8')
 cursor = conn.cursor()

 student_phone = self.t1.GetValue().encode('utf8') # 注意GetValue()获取的是unicode编码,
 server_id = self.t2.GetValue().encode('utf8') # 你使用的#coding=utf8,那就对获取的数据.encode('utf8')
 order_id = self.t3.GetValue().encode('utf8')
 order_money = self.t4.GetValue().encode('utf8')
 order_way = self.t5.GetValue().encode('utf8')

 data = (student_phone,order_way)

 try:
  sql = "insert into book values(%s,'成功订餐!',ID)
  dial.ShowModal() # 显示对话框
 except:
  conn.rollback()
 finally:
  cursor.close()
  conn.close()


###########################################################################
## Class MyDialog43
###########################################################################

class MyDialog43(wx.Dialog):
 def __init__(self,title=u"删除订单",size=wx.Size(300,90))
 self.t2 = wx.TextCtrl(self.panel,120),e):
 dialog43 = MyDialog43(None)
 btn = wx.Button(parent=dialog43.panel,label="取消订单",170),dialog43.delete)
 dialog43.ShowModal()

 def delete(self,charset='utf8')
 cursor = conn.cursor()

 server_id = self.t1.GetValue().encode('utf8') # 注意GetValue()获取的是unicode编码
 student_phone = self.t2.GetValue().encode('utf8')
 data = (server_id,student_phone)

 try:
  sql = "delete from book where server_id=%s and student_phone=%s"
  cursor.execute(sql,'成功删除订单!',ID)
  dial.ShowModal() # 显示对话框
 except:
  conn.rollback()
 finally:
  cursor.close()
  conn.close()


###########################################################################
## Class MyDialog44
###########################################################################

class MyDialog44(wx.Dialog):
 def __init__(self,title=u"修改订单","请输入客服编号:","请更正订单金额:",e):
 dialog44 = MyDialog44(None)
 btn = wx.Button(parent=dialog44.panel,label="确认修改",dialog44.change)
 dialog44.ShowModal()

 def change(self,charset='utf8')
 cursor = conn.cursor()

 server_id = self.t1.GetValue().encode('utf8')
 student_phone = self.t2.GetValue().encode('utf8')
 order_money = self.t3.GetValue().encode('utf8')
 data = (order_money,student_phone)

 try:
  sql = "update book set order_money=%s where server_id=%s and student_phone=%s"
  cursor.execute(sql,'成功修改订单!',ID)
  dial.ShowModal() # 显示对话框
 except:
  conn.rollback()
 finally:
  cursor.close()
  conn.close()


###########################################################################
## Class MyDialog51
###########################################################################

class MyDialog51(wx.Dialog):
 def __init__(self,title=u"配送信息",size=wx.Size(502,"预计派送时间",60))


 def OnClick(self,e):
 dialog51 = MyDialog51(None)
 btn = wx.Button(parent=dialog51.panel,dialog51.find)
 dialog51.ShowModal()

 def find(self,charset='utf8')
 cursor = conn.cursor()
 try:
  sql = "select * from delivery"
  cursor.execute(sql)
  rs = cursor.fetchall()
  h = 80
  for row in rs:
  if row[0] == self.t1.GetValue():
   h = h + 20
   courier_id = row[1]
   deliver_time = row[2]
   wx.StaticText(self.panel,deliver_time,h))
 except:
  conn.rollback()
 finally:
  cursor.close()
  conn.close()


###########################################################################
## Class MyDialog52
###########################################################################

class MyDialog52(wx.Dialog):
 def __init__(self,title=u"安排配送","请输入预计派送时间:",e):
 dialog52 = MyDialog52(None)
 btn = wx.Button(parent=dialog52.panel,label="配送",dialog52.insert)
 dialog52.ShowModal()

 def insert(self,charset='utf8')
 cursor = conn.cursor()

 student_phone = self.t1.GetValue().encode('utf8') # 注意GetValue()获取的是unicode编码,
 courier_id = self.t2.GetValue().encode('utf8') # 你使用的#coding=utf8,那就对获取的数据.encode('utf8')
 deliver_time = self.t3.GetValue().encode('utf8')

 data = (student_phone,deliver_time)

 try:
  sql = "insert into delivery values(%s,'成功安排派送!',ID)
  dial.ShowModal() # 显示对话框
 except:
  conn.rollback()
 finally:
  cursor.close()
  conn.close()


###########################################################################
## Class MyDialog53
###########################################################################

class MyDialog53(wx.Dialog):
 def __init__(self,title=u"取消配送",e):
 dialog53 = MyDialog53(None)
 btn = wx.Button(parent=dialog53.panel,label="取消配送",dialog53.delete)
 dialog53.ShowModal()

 def delete(self,charset='utf8')
 cursor = conn.cursor()

 courier_id = self.t1.GetValue().encode('utf8') # 注意GetValue()获取的是unicode编码
 student_phone = self.t2.GetValue().encode('utf8')
 data = (courier_id,student_phone)

 try:
  sql = "delete from delivery where courier_id=%s and student_phone=%s"
  cursor.execute(sql,'成功取消配送!',ID)
  dial.ShowModal() # 显示对话框
 except:
  conn.rollback()
 finally:
  cursor.close()
  conn.close()

if __name__ == "__main__":
 app = wx.App()
 MyFrame1(None).Show()
 app.MainLoop()

程序演示:

(1)店铺信息

(2)店铺上架

(3)店铺下架

(4)派送员信息

(5)订单信息

(6)买家订餐

(7)修改订单

查看订单信息确认已经修改

 

至此python借助pymysql操作Mysql数据库的增、删、改、查功能演示完毕,剩下功能不一一截图,原理类似。

五、总结

通过本次课程设计,我对本学期所学的“数据库”和python内容有了更深一层的理解和学习。对数据库的认识不再仅仅停留在课本的理论知识上,能够更加清楚的理解其后台的操作流程。对python的应用不再局限于编写简单小程序,而是做到了与数据库进行连接,通过wxpython前台窗口,对数据库传入相应的sql语句,从而实现数据库的插入、修改、增加、删除等操作,实现sql语句的前台明了化。在设计E-R图时,采用了Navicat for mysql这一针对mysql的可视化工具,使得表与表之间的关系得以清晰的呈现,这次课程设计使我获益匪浅,在巩固与拓展知识的同时,还学会了许多工具的使用,这对以后的开发提供了宝贵的经验和基石。

更多学习资料请关注专题《管理系统开发》。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程小技巧。

您可能感兴趣的文章:

  • python实现学生管理系统
  • Python实现学生成绩管理系统
  • 名片管理系统python版
  • Python学生成绩管理系统简洁版
  • Python实现学校管理系统
  • Python实现GUI学生信息管理系统
  • python版学生管理系统
  • python实现用户管理系统
  • 一个简单的Python名片管理系统
  • python实现员工管理系统

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读