반응형
SMALL
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 | #-*- coding: utf-8 -*- #필요한 모듈 import import mysql.connector from mysql.connector import errorcode #DB 접속 정보를 dict type 으로 준비 한다. config={"user":"root", "password":"maria", "host":"127.0.0.1", "database":"acorn", "port":"3306"} import wx class MemberFrame(wx.Frame): # 생성자 def __init__(self, parent, title): super(MemberFrame, self).__init__(parent,\ title=title, size=(600, 500)) self.InitUi() self.Center() self.Show() self.ShowMember() #회원정보 출력하기 # UI 초기화 하는 메소드 def InitUi(self): panel = wx.Panel(self) wx.StaticText(panel, label="이름", pos=(5, 5)) self.inputName = wx.TextCtrl(panel, pos=(55, 5)) wx.StaticText(panel, label="주소", pos=(180, 5)) self.inputAddr = wx.TextCtrl(panel, pos=(235, 5)) saveBtn = wx.Button(panel, label="저장", pos=(350, 5)) listBtn = wx.Button(panel, label="목록보기", pos=(450, 5)) self.txtShow = wx.TextCtrl(panel, pos=(5, 50),\ size=(550,150),style=wx.TE_MULTILINE|wx.TE_READONLY) #버튼에 이벤트 등록하기 saveBtn.Bind(wx.EVT_BUTTON, self.SaveBtnClicked) listBtn.Bind(wx.EVT_BUTTON, self.ListBtnClicked) #저장 버튼을 눌렀을때 호출되는 메소드 def SaveBtnClicked(self, event): #입력한 이름과 주소를 읽어온다. name=self.inputName.GetValue() addr=self.inputAddr.GetValue() print(name, addr) try: #connection 객체 얻어오기 conn=mysql.connector.connect(**config) cursor=conn.cursor() sql = "INSERT INTO member (name, addr) VALUES(%s, %s)" # %s 에 바인딩할 내용을 typle 로 준비한다. sql_data=(name, addr) # .execute(실행할 sql문, %s 에 바인딩할 tuple) cursor.execute(sql, sql_data) except mysql.connector.Error as err : print "처리 오류:", err conn.rollback() else: conn.commit() #성공 메세지 띄우기 dlg=wx.MessageDialog(self, "저장성공", "결과", wx.OK) dlg.ShowModal() dlg.Destroy() finally: cursor.close() conn.close() self.ShowMember() #목록보기 버튼을 눌렀을때 호출되는 메소드 def ListBtnClicked(self, event): self.ShowMember() #회원 목록을 출력하는 메소드 def ShowMember(self): try: #connection 객체 얻어오기 conn=mysql.connector.connect(**config) cursor=conn.cursor() sql="SELECT num,name,addr FROM member ORDER BY num DESC" cursor.execute(sql) #텍스트 필드에 출력된 내용 Clear self.txtShow.SetLabelText("") #결과 셋 얻어오기 resultSet=cursor.fetchall() for item in resultSet: str=u"번호 : {} | 이름 : {} | 주소 : {}\n".format(*item) # UI 에 append 하기 self.txtShow.AppendText(str) except mysql.connector.Error as err : print("처리 오류:",err) finally: cursor.close() conn.close() if __name__ == "__main__": app=wx.App() MemberFrame(None, title="회원정보") app.MainLoop() | cs |
DB에 저장된 정보가 한번 나와
저장 누르면
콘솔창에 뭔가 뜨면서 저장이 됬다고 알림이 뜸
ok를 눌러보면
추가 된 것을 확인가능
반응형
'FrameWork > Python' 카테고리의 다른 글
[ Pycharm ] Hellow World 출력하기 (0) | 2021.07.18 |
---|---|
파이썬 설치하기 - 파이참 (0) | 2021.07.18 |
파이썬 wx3 (0) | 2017.08.16 |
파이썬 wx2 (0) | 2017.08.16 |
파이썬 wx2 (0) | 2017.08.12 |