python實現簡單學生管理系統
阿新 • • 發佈:2019-01-28
使用python實現了一個簡單的學生管理系統,包含註冊,登陸,修改密碼和簡單查詢資訊等簡單功能,後續感興趣可以自己新增上其他資訊或與已有的學生資訊表相關聯。註冊後存入資料庫對應表格中,並對密碼進行加密,表格比較簡單,只有id,姓名,密碼和is_delete四個欄位,程式碼使用時其實還應該加上異常捕捉,由於程式碼比較簡單這裡就沒有使用。下面上程式碼:
from pymysql import connect class Userlogin(object): def __init__(self): self.conn = connect(host='localhost', port=3306, user='root', password='mysql', database='students', charset='utf8') self.cur = self.conn.cursor() self.is_login = 0 self.login_name = '' def __del__(self): self.cur.close() self.conn.close() def reg(self): '''使用者註冊''' uname = input('請輸入要註冊的使用者名稱:') sql = '''select count(*) from users where uname = %s;''' self.cur.execute(sql, uname) res = self.cur.fetchall()[0][0] print(res) if res: print('使用者名稱已存在') return while True: upwd = input('請輸入要註冊的密碼:') if not (len(upwd) >= 6 and len(upwd) <= 20): print('密碼長度需為6-20位!!!') continue upwd_1 = input('請再輸一次:') if upwd_1 == upwd: break else: print('兩次輸入不一致,請重新輸入!!!') sql = '''insert into users(uname, upwd) value(%s, password(%s));''' param = [uname, upwd] self.cur.execute(sql, param) self.conn.commit() def login(self): '''使用者登陸''' uname = input('請輸入要登入的使用者名稱:') upwd = input('請輸入密碼:') sql = '''select count(*) from users where uname = %s and upwd = password(%s) and is_delete = 0;''' param = [uname, upwd] self.cur.execute(sql, param) res = self.cur.fetchall()[0][0] if not res: print('使用者名稱或密碼錯誤,請重新登陸') else: print('登陸成功') self.is_login = 1 self.login_name = uname def select(self): '''查詢所有學生''' sql = '''select * from users where is_delete = 0;''' self.cur.execute(sql) table_data = self.cur.fetchall() for data in table_data: print(data) def change_pwd(self): '''更改密碼''' while True: new_pwd = input('請輸入新密碼:') if not (len(new_pwd) >= 6 and len(new_pwd) <= 20): print('密碼長度需為6-20位!!!') continue new_pwd1 = input('請再輸一次:') if new_pwd != new_pwd1: print('兩次輸入不一致!!!') else: break sql = '''update users set upwd = password(%s) where uname = %s''' params = [new_pwd, self.login_name] self.cur.execute(sql, params) print('修改成功,請重新登陸') self.is_login = 0 def logoff(self): '''使用者登出''' if self.is_login == 0: print('當前沒有使用者登陸') return self.is_login = 0 print('登出成功') def run(self): while True: if self.is_login == 0: print('1.註冊') print('2.登陸') print('3.退出') commond = input('請輸入要操作的數字:') if commond == '1': self.reg() elif commond == '2': self.login() elif commond == '3': break else: print('請輸入正確的運算元!!!') elif self.is_login == 1: print('1.查詢') print('2.修改密碼') print('3.登出登陸') commond = input('請輸入要操作的數字:') if commond == '1': self.select() elif commond == '2': self.change_pwd() elif commond == '3': self.logoff() else: print('請輸入正確的指令!!!') else: self.is_login = 0 def main(): reglogin = Userlogin() reglogin.run() if __name__ == '__main__': main()