小白的第一个Python程序——成绩查询系统(二)(教师登录页)

在之前的一篇文章里,介绍了成绩查询系统中的学生登陆界面,现在来编写教师登陆界面。其实你可以把它们做成同一个界面,链接同一个数据库表,然后新建一个列来辨别登录人是教师或是学生。毕竟教师和学生的权限一定不同。
教师登陆
教师登陆其实和学生登陆相差不大,只是需要在验证用户的时候链接不同的表,然后在登陆成功后跳转到教师的操作页面。
所以只是在数据库链接时作出改动,以及定义不同的button事件而已,在此不做赘述。

import wx
import pymysql

class MyApp_teclogin(wx.Frame):
    def __init__(self, *args,**kwargs):
        wx.Frame.__init__(self,*args,**kwargs)
        # frame = wx.Frame(parent=None, title='教师登陆界面', size=(450, 300))
        self.Center()
        self.panel = wx.Panel(self)
        self.RegisterInterface()
    def RegisterInterface(self):

        # 添加静态标签
        label_user = wx.StaticText(self.panel, -1, "账号:", pos=(80, 50))
        label_pass = wx.StaticText(self.panel, -1, "口令:", pos=(80, 100))
        # 设置输入
        self.entry_user = wx.TextCtrl(self.panel, -1, size=(200, 30), pos=(130, 50))
        self.entry_pass = wx.TextCtrl(self.panel, -1, size=(200, 30), pos=(130, 100), style=wx.TE_PASSWORD)
        # 添加按钮
        self.but_login = wx.Button(self.panel, -1, "登陆", size=(80, 30), pos=(165, 150))
        # 给按钮绑定事件
        self.Bind(wx.EVT_BUTTON, self.on_but_login, self.but_login)

        # 单击登陆按钮弹出的对话框----成功
    def show_message(self, word=""):
            dlg = wx.MessageDialog(None, word, u"提示", wx.YES_NO | wx.ICON_QUESTION)

            if dlg.ShowModal() == wx.ID_YES:
                pass
            dlg.Destroy()

        # 点击登陆后的绑定事件
    def on_but_login(self, event):
            # 将输入赋值给定量
            user_name = self.entry_user.GetValue()
            pass_word = self.entry_pass.GetValue()

            sql = """select * from teacher where USERNAME ='%s' """ % (user_name)
            # 判断用户名和密码是否为空
            if user_name and pass_word:
                # 连接数据库
                db = pymysql.connect(host="localhost", user="root",
                                     password="Passw0rd", db="testdb", port=3306)

                cur = db.cursor()
                try:
                    cur.execute(sql)

                    results = cur.fetchall()
                    # 察看用户名是否存在
                    if results:
                        # 察看密码是否正确
                        if results[0][2] == pass_word:
                            from teacher import MyApp_teacher
                            operation = MyApp_teacher(parent=None, title='教师操作界面', size=(450, 300))
                            operation.Show()
                            self.Close(True)
                            pass
                        else:
                            self.show_message(word="密码错误")
                    else:
                        self.show_message(word='用户名不存在')
                except Exception as e:
                    db.rollback()
                finally:
                    # 关闭连接
                    db.close()
            else:
                self.show_message(word='账号和口令不能为空')

if __name__ == '__main__':
    app = wx.App()
    login = MyApp_teclogin(parent=None, title='教师登陆界面', size=(450, 300))

    login.Show()
    app.MainLoop()

当然,它需要一个表:
teacher

UIDUSERNAMERNDIDENTITY
11111111
22222221
33333331

其实像我这样在每一个页面中都单独链接一次数据库是非常傻的,但是在这个程序完成的时候我才意识到这一点。所以在你编写的时候可以考虑整个程序只连接一次数据库。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1.学生成绩管理系统分为三个用户角色,登录界面可以选择三种不同的角色进行登录系统 2.管理员角色登录系统可以有以下功能: 管理考试信息:可以对考试批次信息进行增删改查操作 管理教师信息:可以对教师个人信息进行增删改查操作,包括教师的姓名/所属班级/生日/性别/登录密码/家庭住址身份证等信息 管理班级信息:可以对班级名称信息进行增删改查操作 管理学生信息:可以对学生个人信息进行增删改查操作,包括教师的姓名/所属班级/生日/性别/登录密码/家庭住址身份证等信息 查看学生成绩:可以查看学生的所属班级,考试批次,姓名,科目,成绩信息 管理课程信息:可以添加课程,也可以从编辑删除操作 管理专业信息:可以添加专业,也可以从编辑删除操作 注销退出系统 3.教师登录系统可以拥有以下功能: 教师个人信息:可以查看自己的个人信息,可以编辑修改自己的信息 教师录入成绩:可以录入学生的成绩:包含学生的所属班级,考试批次,姓名,科目,成绩,可以编辑删除操作 教师查看班级:可以查看现在的班级情况 教师查看专业:可以查看现在的专业情况 修改密码:可以修改个人的登录密码功能 注销退出系统 4.学生登录系统可以拥有以下功能: 学生个人信息:可以查看自己的个人信息,可以编辑自己的信息 学生查看成绩:可以查看学生的成绩,包含班级,考试批次,姓名成绩等属性,也可以按照考试批次快速检索学生信息 学生成绩排名:可以按照成绩高低排名进行查看 学生选择课程:可以添加学生自己的选课信息,可以编辑删除操作 修改密码:可以修改个人的登录密码功能 注销退出系统 备注:系统使用django+mysql进行开发,前端界面大方美观

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值