GUI程序设计--班级信息收集系统
#数据库的创建 """ import pymysql # 打开数据库连接 db = pymysql.connect(host="localhost",user="root",password="root",database="studentsystem") # 使用cursor()方法创建一个游标对象cursor cursor = db.cursor() # 使用execute()方法执行SQL,如果表存在则删除 cursor.execute("DROP TABLE IF EXISTS books") # 使用预处理语句创建表 sql = """ #CREATE TABLE student ( # name varchar(50) NOT NULL, # class varchar(50) NOT NULL, # number char(24) NOT NULL #) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8; """ # 执行SQL语句 cursor.execute(sql) # 关闭数据库连接 db.close() """ import pymysql # 打开数据库连接 db = pymysql.connect(host="localhost",user="root",password="root",database="studentsystem",charset="utf8") # 使用cursor()方法获取操作游标 cursor = db.cursor() # 数据列表 data = [("张福荣","20信计1班",'2020310143012'), ("张三","20信计1班",'2020310143013'), ("李四",'20信计1班','2020310143014'), ("王五","20信计1班",'2020310143015'), ] try: # 执行sql语句,插入多条数据 cursor.executemany("insert into student(name,class,number) values (%s,%s,%s)",data) # 提交数据 db.commit() except: # 发生错误时回滚 db.rollback() # 关闭数据库连接 db.close()
GUI界面
1# -*- coding:utf-8 -*-
2 import wx 3 4 class MyFrame(wx.Frame): 5 def __init__(self, parent, id): 6 wx.Frame.__init__(self, parent, id, '学生教学系统登录', size=(400, 300)) 7 # 创建面板 8 panel = wx.Panel(self) 9 10 # 创建“确定”和“取消”按钮,并绑定事件 11 self.bt_confirm = wx.Button(panel, label='确定') 12 self.bt_confirm.Bind(wx.EVT_BUTTON,self.OnclickSubmit) 13 self.bt_cancel = wx.Button(panel, label='取消') 14 self.bt_cancel.Bind(wx.EVT_BUTTON,self.OnclickCancel) 15 # 创建文本,左对齐 16 self.title = wx.StaticText(panel, label="请输入姓名和学号") 17 self.label_user = wx.StaticText(panel, label="姓名:") 18 self.text_user = wx.TextCtrl(panel, style=wx.TE_LEFT) 19 self.label_pwd = wx.StaticText(panel, label="学号:") 20 self.text_password = wx.TextCtrl(panel, style=wx.TE_PASSWORD) 21 # 添加容器,容器中控件按横向并排排列 22 hsizer_user = wx.BoxSizer(wx.HORIZONTAL) 23 hsizer_user.Add(self.label_user, proportion=0, flag=wx.ALL, border=5) 24 hsizer_user.Add(self.text_user, proportion=1, flag=wx.ALL, border=5) 25 hsizer_pwd = wx.BoxSizer(wx.HORIZONTAL) 26 hsizer_pwd.Add(self.label_pwd, proportion=0, flag=wx.ALL, border=5) 27 hsizer_pwd.Add(self.text_password, proportion=1, flag=wx.ALL, border=5) 28 hsizer_button = wx.BoxSizer(wx.HORIZONTAL) 29 hsizer_button.Add(self.bt_confirm, proportion=0, flag=wx.ALIGN_CENTER, border=5) 30 hsizer_button.Add(self.bt_cancel, proportion=0, flag=wx.ALIGN_CENTER, border=5) 31 # 添加容器,容器中控件按纵向并排排列 32 vsizer_all = wx.BoxSizer(wx.VERTICAL) 33 vsizer_all.Add(self.title, proportion=0, flag=wx.BOTTOM | wx.TOP | wx.ALIGN_CENTER, 34 border=15) 35 vsizer_all.Add(hsizer_user, proportion=0, flag=wx.EXPAND | wx.LEFT | wx.RIGHT, border=45) 36 vsizer_all.Add(hsizer_pwd, proportion=0, flag=wx.EXPAND | wx.LEFT | wx.RIGHT, border=45) 37 vsizer_all.Add(hsizer_button, proportion=0, flag=wx.ALIGN_CENTER | wx.TOP, border=15) 38 panel.SetSizer(vsizer_all) 39 40 def OnclickSubmit(self,event): 41 """ 点击确定按钮,执行方法 """ 42 message = "" 43 username = self.text_user.GetValue() # 获取输入的姓名 44 password = self.text_password.GetValue() # 获取输入的学号 45 if username == "" or password == "" : # 判断姓名或学号是否为空 46 message = '姓名或学号不能为空' 47 elif username =='张福荣' and password =='2020310143012': # 姓名和学号正确 48 message = '该学生存在' 49 elif username =='张三' and password =='2020310143013': # 姓名和学号正确 50 message = '该学生存在' 51 elif username =='李四' and password =='2020310143014': # 姓名和学号正确 52 message = '该学生存在' 53 elif username =='王五' and password =='2020310143015': # 姓名和学号正确 54 message = '该学生存在' 55 else: 56 message = '该学生不存在' # 姓名或学号错误 57 wx.MessageBox(message) # 弹出提示框 58 59 def OnclickCancel(self,event): 60 """ 点击取消按钮,执行方法 """ 61 self.text_user.SetValue("") # 清空输入的姓名 62 self.text_password.SetValue("") # 清空输入的学号 63 64 if __name__ == '__main__': 65 app = wx.App() # 初始化 66 frame = MyFrame(parent=None,id=-1) # 实例MyFrame类,并传递参数 67 frame.Show() # 显示窗口 68 app.MainLoop() # 调用主循环方法
昵称:苒若
学号:3012