作为一个刚学习Python不久的小白,成长之路上的坑坑坎坎沟沟壑壑必不可少,在我完成我的第一个程序之后(或许并不能称为程序,因为它实在是漏洞百出),通过我的自我总结我发现,学习前人的经验是一个少走弯路的最简单的捷径,哪怕这个经验是如此简单幼稚甚至是错误的,它总有自己的价值,所以在此写下我的经验和经历,希望哪怕有一个人在这里吸收一丁点的经验。
我们就此开始,但是必须要事先声明的是,软件和程序以及系统的开发是有具体的流程的,不过在这里只是作为学习用途使用,可以先忽略不计(这样是不对的,如果你有兴趣可以参考“何处锦绣不灰堆”大大的博客一个软件完整的开发流程介绍)。
- 程序的功能
虽然我们略过了一些步骤,但是必要的思考还是要做的,比如这个程序都要实现哪些功能。一个程序查询系统首先要进行登录(而且要区分教师和学生的登陆,毕竟教师和学生的权限不应该相同);然后要有注册;个人信息查询;个人成绩查询;查看全体成绩;学生间成绩互评;教师修改和重置学生的登陆密码;甚至是教师还有权限修改学生成绩。
在我看来一个系统的登陆是需要一个主界面的,然后在点击“学生登陆”或是“教师登陆”后弹出登录窗口来让你输入账号和密码。但在此我们略过此步,直接进入登录界面。
- 登陆
登录界面相信大家见过许多,每天使用的QQ,微信,微博都需要登陆,但是它们是很完善的,我们只是简单的系统而已,并不需要考虑一些“验证码”和“记住密码”、“忘记密码”的问题。当然,如果你喜欢的话,它们并不十分困难。
我们只需要一个具备基本功能的界面而已,类似下面这样:
当然,所有的文本都可以按你喜欢的样子来编辑,不论你习惯把Password称为密码还是口令。
接下来,便是如何实现这个界面(我使用的是WX和MySQL数据库,你可以根据自己的需要进行修改):
import wx
import pymysql
class MyApp(wx.Frame):
def __init__(self, *args, **kw):
wx.Frame.__init__(self, *args, **kw)
# frame = wx.Frame(parent=None, title='登陆界面', size=(450, 300))
self.Center()
self.panel = wx.Panel(self)
self.LoginInterface()
def LoginInterface(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_teclogin = wx.Button(self.panel, -1, "教师登陆", size=(80, 30), pos=(80, 150))
self.but_login = wx.Button(self.panel, -1, "登陆", size=(80, 30), pos=(165, 150))
self.but_reg