首页 > 编程语言 >GUI程序设计--班级信息收集系6.3

GUI程序设计--班级信息收集系6.3

时间:2024-06-03 18:14:05浏览次数:23  
标签:name -- GUI number cursor 6.3 message self wx

建立数据库表:

import pymysql

db=pymysql.connect(host="localhost",user="root",password="ruirui",database="banji")
cursor=db.cursor()
cursor.execute("DROP TABLE IF EXISTS class")
sql="""
CREATE TABLE xinji (
class varchar(50) NOT NULL,
name varchar(50) NOT NULL,
number varchar(50) NOT NULL
)
"""

cursor.execute(sql)
db.close()

班级信息收集:

import pymysql
import wx
class MyFrame(wx.Frame):
def init(self,parent,id):
wx.Frame.init(self,parent,id,"班级信息收集",size=(430,300))
panel=wx.Panel(self)
self.bt_storage=wx.Button(panel,label='保存',pos=(120,170))
self.bt_storage.Bind(wx.EVT_BUTTON,self.OnclickStorage)
self.bt_inquire=wx.Button(panel,label='查询',pos=(215,170))
self.bt_inquire.Bind(wx.EVT_BUTTON,self.OnclickInquire)
self.title=wx.StaticText(panel,label="请输入以下信息进行保存或查询",pos=(130,20))
self.label_class=wx.StaticText(panel,label='班级:',pos=(50,50))
self.text_class=wx.TextCtrl(panel,pos=(100,50),size=(235,25),style=wx.TE_LEFT)
self.label_name=wx.StaticText(panel,label='姓名:',pos=(50,90))
self.text_name=wx.TextCtrl(panel,pos=(100,90),size=(235,25),style=wx.TE_LEFT)
self.label_number=wx.StaticText(panel,label='学号:',pos=(50,130))
self.text_number=wx.TextCtrl(panel,pos=(100,130),size=(235,25),style=wx.TE_LEFT)

def OnclickStorage(self,event):
    """单击保存按钮,执行方法"""
    db=pymysql.connect(host="localhost",user="root",password="ruirui",database="banji",charset='utf8')
    message=""
    classname=self.text_class.GetValue()
    name=self.text_name.GetValue()
    number=self.text_number.GetValue()
    cursor=db.cursor()
    if classname=="" or name=="" or number=="":
         message="班级或姓名或学号不能为空"
    else:
        data=[(classname,name,number)]
        try:
            sql="insert into xinji(class,name,number) values(%s,%s,%s)"
            cursor.executemany(sql,data)
            db.commit()
            message="保存成功"
        except:
            db.rollback()
    db.close()
    wx.MessageBox(message)
    
def OnclickInquire(self,event):
    """单击查询按钮,执行方法"""
    classname_1=self.text_class.GetValue()
    name_1=self.text_name.GetValue()
    number_1=self.text_number.GetValue()
    db=pymysql.connect(host="localhost",user="root",password="ruirui",database="banji")
    cursor=db.cursor()
    message=""
    sql=""
    if name_1!="" and number_1!="":
        sql="select * from xinji where number= %s"
        try:
            cursor.execute(sql,number_1)
            result=cursor.fetchall()
            if result:
                for row in result:
                    classname=row[0]
                    name=row[1]
                    number=row[2]
            if name==name_1:
                message="班级:{}\n姓名:{}\n学号:{}\n".format(classname,name,number)
            else:
                message="姓名与学号不匹配"
        except:
            message="没有该学号"
    elif name_1!="" and number_1 =="":
        sql="select * from xinji where name=%s"
        try:
            cursor.execute(sql,name_1)
            result=cursor.fetchall()
            for row in result:
                classname=row[0]
                name=row[1]
                number=row[2]
            message="班级:{}\n姓名:{}\n学号:{}\n".format(classname,name,number)
        except:
            message="没有这个名字"
    elif number_1!="" and name_1=="":
        sql="select * from xinji where number=%s"
        try:
            cursor.execute(sql,number_1)
            result=cursor.fetchall()
            for row in result:
                classname=row[0]
                name=row[1]
                number=row[2]
            message="班级:{}\n姓名:{}\n学号:{}\n".format(classname,name,number)
        except:
            message="没有这个学号"
    else:
        message="班级或姓名或学号不能为空"
    db.close()
    wx.MessageBox(message)

if name == 'main':
app=wx.App()
frame=MyFrame(parent=None,id=-1)
frame.Show()
app.MainLoop()

标签:name,--,GUI,number,cursor,6.3,message,self,wx
From: https://www.cnblogs.com/linbaitong/p/18229378

相关文章

  • Java (IOC/IO Spring项目)
    前沿Maven解决问题项目中的iar包资源需要我们自己从网上下载后,手动导入到项目中使用,不好管理。jar包版本控制麻烦Maven是一个强大的项目管理和构建工具,主要用于Java项目。它提供了一种统一的构建系统,并且能够管理项目的依赖关系、构建过程、版本控制等。Maven采用了一......
  • Nano编辑器常用
    Nano编辑器使用教程:进入Nano编辑器:在命令行输入nano即可进入Nano编辑器。基本操作:输入文本:直接输入即可保存文件:Ctrl+O退出Nano:Ctrl+X常用命令:移动光标:方向键或Ctrl+P(上)、Ctrl+N(下)、Ctrl+B(左)、Ctrl+F(右)删除:Backspace(删除前一个字符)、Del......
  • 4.16-4.17技术支持面试
    1、讲讲你的实习经历xxx2、讲讲密码学,对称和非对称(公钥加密)的区别,非对称是否可以用私钥加密;对称和非对称区别在于,对称使用同一个密钥加密解密(有安全隐患),非对称是公钥加密私钥解密(私钥一般储存在服务器);可行,应用于数字签名方面可以,私钥加密公钥验证解密签名,但是数字签名的过程包......
  • 搜索策略
    Ch4搜索策略搜索的含义搜索问题一般包括两个重要的问题:搜索什么:通常指目标在哪里搜索:即搜索空间,通常指一系列状态的汇集搜索过程实际上是根据初始条件和扩展规则构造一棵解答树并寻找符合目标状态的节点的过程启发式搜索:依靠经验,利用已有知识,根据问题的实际情况,不断寻找......
  • AI大模型时代: 还需要百度吗?
    随着人工智能技术的飞速发展,AI大模型已经成为各行各业的变革力量。在信息获取和知识共享方面,大模型的出现似乎对传统搜索引擎提出了挑战,据不完全统计,国内已经出现数百大模型,更小规模的大模型就更多了。用户已经慢慢更多习惯使用AI来解决遇到的问题,不再是百度一下,未来百度的次数......
  • KR Review
    Ch2知识表示Whatisknowledgerepresentation?Knowledge:DIKW(Data,Information,Knowledge,Wisdom)KnowledgeRepresentation:theprocessofencodingknowledgeintoaform/architecturethatcanbeusedbyacomputer.Wayofrepresentingknowledge:Logic-ba......
  • uniapp微信小程序获取手机号 位置信息
    一.获取手机号获取手机号<template><u-buttonopen-type="getPhoneNumber"@getphonenumber="getNumber">一键登录</u-button></template><script>exportdefault{methods:{getNumber(e){......
  • 确定性推理
    Ch3确定性推理是指按照某种策略从已知事实出发去推出结论的过程。推理策略主要解决推理方向、冲突消解等问题,如推理方向控制策略、求解策略、限制策略、冲突消解策略等搜索策略主要解决推理线路、推理效果、推理效率等问题。推理的逻辑基础解释:对于谓词公式\(P\),如果......
  • 前端开发,块元素与行内元素
     块元素行内元素块元素会在页面中独占一行行内元素不会独占页面中的一行可以设置width/height属性设置width/height属性无效一般块级元素可以包含行内元素和其他块级元素一般行内元素包含行内元素,不包含块级元素 常见的块级元素div、form、h1~h6、hr、......
  • ADB导出app到电脑生成apk文件
    查找需要导出应用的包名方法一:查找设备上所有应用包名adbshellpmlistpackage方法二:监控设备接下来打开的应用adbshellammonitor查找应用备份包位置adbshellpmpath包名导出文件到电脑adbpull备份包位置本机存放文件地址示例:adbpull/data/app/~~pnUI_O......