성과 관리 시스템, 미완성, 내일 계속
수입 pymysql
tkinterimport에서 *
dB = pymysql.Connect (호스트 = '로컬 호스트'= 3306 포트, 사용자 = '루트'= passwd를 '4758stuv870399'DB = 'stuadm'캐릭터 = 'UTF8')
() = db.cursor 커서
데프 showTheTable (목록 상자) :
Listbox.delete (0, END)
데이터 = []
SQL1 = # SQL 문 구조 "studentadm_information SELECT * FROM"
cursor.execute (SQL1) # 원래 언어 성능을 얻을 수
all_data cursor.fetchall = ()
IIN all_data에 대한 :
DD = 1 [0] + STR (I [1]) + I [2]
Listbox.insert (END, DD)
데프 updateTheTable () : # 업데이트, 데이터에 액세스, SQL 업데이트 양식을 수행
VAR1 entry1.get = ()
VAR2 = INT (entry2.get ())
VAR3 = entry3.get ()
SQL은 "studentadm_information 값으로 INSERT = \
( '%의 S'가 % d '%의 S') "% (VAR1, VAR2, VAR3)
인쇄 (SQL)
시험:
데이터를 제출 더 이상 cursor.execute (SQL) #
db.commit ()
인쇄 ( "학생 정보가 성공적으로 제출!")
외:
( "정보 실패 업로드!") 인쇄
db.rollback ()
showTheTable (mylist)로 바뀐다는
데프 changeTheTable () : #이 구조를 삭제 SQL
VAR1 entrya.get = ()
VAR2 = INT (entryb.get ())
VAR3 = entryc.get ()
시험:
SQL3 = "UPDATE studentadm_information 세트 STUDENT_NAME = \ '% S \'student_phoneNumber = % S WHERE student_id % D ="% (VAR1, VAR3, VAR2)
인쇄 (SQL3)
cursor.execute (SQL3)
db.commit ()
외:
db.rollback ()
showTheTable (mylist)로 바뀐다는
데프 deleteTheTable () :
VAR1 = INT (entryp.get ())
SQL = "studentadm_information에서 삭제 여기서 student_id = % d의"% (VAR1)
시험:
cursor.execute (SQL)
db.commit ()
인쇄 ( "성공적으로 삭제")
외:
db.rollback ()
showTheTable (mylist)로 바뀐다는
데프 checkTheTable () :
VAR1 = INT (entryA.get ())
SQL1 = "SELECT * FROM studentadm_information 여기서 student_id = % d의"% (VAR1);
시험:
cursor.execute (SQL1)
S = cursor.fetchone ()
인쇄물)
의 == 없음 경우 :
인쇄 ( "학생들은 존재하지 않는다!")
db.commit ()
VAR2에서의 = S [1]
VAR3에서의 = S [2]
entryB.setvar (VAR2)
entryC.setvar (VAR3)
외:
db.rollback ()
showTheTable (mylist)로 바뀐다는
윈도우의 Tk = ()
window.geometry ( "700x500") # 메인 윈도우
최고 = 프레임 (윈도우, 높이 = 200, 폭 = 600, BG = '녹색'); # 학생 정보 표시
스크롤 = 스크롤 (위)
scrollar.pack (= 우측 기입 = Y)
= myList를리스트 박스 (상단 높이 = 10, 폭 = 50, = yscrollcommand scrollar.set) # 바인드 드롭 다운 이벤트
엔트리 ENTRY1 = (윈도우) # 1,2,3 증가 버튼
엔트리 ENTRY2 = (윈도우)
엔트리 entry3 = (윈도우)
엔트리 entrya = (윈도우)가 변경된다 #abc
엔트리 entryb = (윈도우)
엔트리 entryc = (윈도우)
엔트리 entryA = (윈도우)가 볼 #ABC
엔트리 entryB = (윈도우)
엔트리 entryC = (윈도우)
엔트리 entryp = (윈도우) #P 삭제 된 오브젝트를 지정하는데 사용되는
entry1.place (X = 50, Y가 = 300)
entry2.place (X = 200, Y = 300을)
entry3.place (X = 350, Y = 300을)
entrya.place (X = 50, Y = 340)
entryb.place (X = 200, Y = 340)
entryc.place (X = 350, Y = 340)
entryA.place (X = 50, Y = 450)
entryB.place (X = 250, Y = 450)
entryC.place (X = 450, Y = 450)
entryp.place (X = 350, Y = 380)
BT1 = 버튼 (윈도우, 텍스트 = "增加"명령 = updateTheTable)
bt1.place (X = 520, Y = 290를)
BT2 = 버튼 (윈도우, 텍스트 = "改动"명령 = changeTheTable)
bt2.place (X = 520, Y = 330)
BT3 = 버튼 (윈도우, 텍스트 = "删除"명령 = deleteTheTable)
bt3.place (X = 520, Y = 370를)
BT4 = 버튼 (윈도우, 텍스트 = "查看"명령 = checkTheTable)
bt4.place (X = 200, Y = 450)
showTheTable (mylist)로 바뀐다는
scrollar.config (명령 = mylist.yview)
mylist.pack (측면 = LEFT)
top.pack ()
window.mainloop ()