Python之資料庫增加模組
阿新 • • 發佈:2018-11-28
一 增加資料庫介面
1 程式碼
# -*- coding: utf-8 -*- ########################################################################### ## Python code generated with wxFormBuilder (version Feb 16 2016) ## http://www.wxformbuilder.org/ ## ## PLEASE DO "NOT" EDIT THIS FILE! ########################################################################### import wx import wx.xrc from SaveZiDuan import MyFrame5 from SaveDataBase import MyFrame9 from SaveDocument_Window import MyFrame31 ########################################################################### ## Class MyFrame7 ########################################################################### class MyFrame7(wx.Frame): def __init__(self, parent): #框架初始化 wx.Frame.__init__(self, parent, id=wx.ID_ANY, title=wx.EmptyString, pos=wx.DefaultPosition,size=wx.Size(477, 141), style=wx.DEFAULT_FRAME_STYLE | wx.TAB_TRAVERSAL) #Windows類的方法 self.SetSizeHintsSz(wx.DefaultSize, wx.DefaultSize) #垂直和水平佈局控制器 bSizer7 = wx.BoxSizer(wx.VERTICAL) bSizer8 = wx.BoxSizer(wx.HORIZONTAL) #空白標籤,位於佈局控制器8 self.m_staticText6 = wx.StaticText(self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.Size(100, 50), 0) self.m_staticText6.Wrap(-1) bSizer8.Add(self.m_staticText6, 0, wx.ALL, 5) #增加DATABASE按鈕,位於佈局控制器8 self.m_button2 = wx.Button(self, wx.ID_ANY, u"增加DATABASE", wx.DefaultPosition, wx.Size(120, 50), 0) bSizer8.Add(self.m_button2, 0, wx.ALL, 5) #新增TABLE按鈕,位於佈局控制器8 self.m_button3 = wx.Button(self, wx.ID_ANY, u"增加TABLE", wx.DefaultPosition, wx.Size(120, 50), 0) bSizer8.Add(self.m_button3, 0, wx.ALL, 5) #佈局控制器8位於佈局控制器7 bSizer7.Add(bSizer8, 0, wx.EXPAND, 5) #水平佈局控制器 bSizer9 = wx.BoxSizer(wx.HORIZONTAL) #空白標籤位於佈局控制器9 self.m_staticText7 = wx.StaticText(self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.Size(100, 50), 0) self.m_staticText7.Wrap(-1) bSizer9.Add(self.m_staticText7, 0, wx.ALL, 5) #增加資料位於佈局控制器9 self.m_button4 = wx.Button(self, wx.ID_ANY, u"增加資料", wx.DefaultPosition, wx.Size(120, 50), 0) bSizer9.Add(self.m_button4, 0, wx.ALL, 5) #退出,位於佈局控制器9 self.m_button5 = wx.Button(self, wx.ID_ANY, u"退出", wx.DefaultPosition, wx.Size(120, 50), 0) bSizer9.Add(self.m_button5, 0, wx.ALL, 5) #佈局控制器9位於佈局控制器7上 bSizer7.Add(bSizer9, 0, wx.EXPAND, 5) #Window類的方法 self.SetSizer(bSizer7) self.Layout() self.Centre(wx.BOTH) # 按鈕繫結事件 self.m_button2.Bind(wx.EVT_BUTTON, self.m_button2OnButtonClick) self.m_button3.Bind(wx.EVT_BUTTON, self.m_button3OnButtonClick) self.m_button4.Bind(wx.EVT_BUTTON, self.m_button4OnButtonClick) self.m_button5.Bind(wx.EVT_BUTTON, self.m_button5OnButtonClick) def __del__(self): pass # 點選按鈕,彈出對應的視窗 def m_button2OnButtonClick(self, event): window=MyFrame9(None) window.Show() def m_button3OnButtonClick(self, event): window=MyFrame5(None) window.Show() def m_button4OnButtonClick(self, event): window=MyFrame31(None) window.Show() def m_button5OnButtonClick(self, event): exit() #測試 if __name__=='__main__': app=wx.App() window=MyFrame7(None) window.Show() app.MainLoop()
2 執行結果
二 新建一個數據庫
1 程式碼
# -*- coding: utf-8 -*- ########################################################################### ## Python code generated with wxFormBuilder (version Feb 16 2016) ## http://www.wxformbuilder.org/ ## ## PLEASE DO "NOT" EDIT THIS FILE! ########################################################################### import wx import wx.xrc from CreateDatabase import CreateDatabase from Notice import MyFrame3 ########################################################################### ## Class MyFrame9 ########################################################################### class MyFrame9(wx.Frame): def __init__(self, parent): #初始化框架 wx.Frame.__init__(self, parent, id=wx.ID_ANY, title=wx.EmptyString, pos=wx.DefaultPosition,size=wx.Size(500, 300), style=wx.DEFAULT_FRAME_STYLE | wx.TAB_TRAVERSAL) #Windows類的方法 self.SetSizeHintsSz(wx.DefaultSize, wx.DefaultSize) #垂直和水平佈局控制器 bSizer10 = wx.BoxSizer(wx.VERTICAL) bSizer11 = wx.BoxSizer(wx.HORIZONTAL) #輸入資料庫名提示,位於佈局控制器11 self.m_staticText8 = wx.StaticText(self, wx.ID_ANY, u"請輸入DATABASE名稱", wx.DefaultPosition, wx.Size(150, 50), 0) self.m_staticText8.Wrap(-1) bSizer11.Add(self.m_staticText8, 0, wx.ALL, 5) #要新增的資料庫名,位於佈局控制器11 self.m_textCtrl6 = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.Size(120, 50), 0) bSizer11.Add(self.m_textCtrl6, 0, wx.ALL, 5) #佈局控制器11在佈局控制器10中 bSizer10.Add(bSizer11, 1, wx.EXPAND, 5) #水平佈局控制器 bSizer12 = wx.BoxSizer(wx.HORIZONTAL) #空白標籤,位於佈局控制器12 self.m_staticText9 = wx.StaticText(self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.Size(150, 50), 0) self.m_staticText9.Wrap(-1) bSizer12.Add(self.m_staticText9, 0, wx.ALL, 5) #確認按鈕,位於佈局控制器12 self.m_button6 = wx.Button(self, wx.ID_ANY, u"確定", wx.DefaultPosition, wx.Size(120, 50), 0) bSizer12.Add(self.m_button6, 0, wx.ALL, 5) #佈局控制器12位於佈局控制器10 bSizer10.Add(bSizer12, 1, wx.EXPAND, 5) #Window類的方法 self.SetSizer(bSizer10) self.Layout() self.Centre(wx.BOTH) # 按鈕繫結事件 self.m_button6.Bind(wx.EVT_BUTTON, self.m_button6OnButtonClick) def __del__(self): pass # 點選按鈕,新建一個數據庫 def m_button6OnButtonClick(self, event): dataname=self.m_textCtrl6.GetValue() sql='create database %s'%dataname createdatabase=CreateDatabase(sql) if(dataname): window=MyFrame3(None) window.Show() else: window=MyFrame3(None,'請檢查DATABASE名稱是否輸入!') window.Show() #測試 if __name__=='__main__': app=wx.App() window=MyFrame9(None) window.Show() app.MainLoop()
2 測試
三 給資料庫新增一張資料表
1 程式碼
# -*- coding: utf-8 -*- ########################################################################### ## Python code generated with wxFormBuilder (version Feb 16 2016) ## http://www.wxformbuilder.org/ ## ## PLEASE DO "NOT" EDIT THIS FILE! ########################################################################### import wx import wx.xrc from CreateTable import CreateTable from Notice import MyFrame3 ########################################################################### ## Class MyFrame5 ########################################################################### class MyFrame5(wx.Frame): def __init__(self, parent): #框架初始化 wx.Frame.__init__(self, parent, id=wx.ID_ANY, title=wx.EmptyString, pos=wx.DefaultPosition,size=wx.Size(763, 477), style=wx.DEFAULT_FRAME_STYLE | wx.TAB_TRAVERSAL) #Window類的方法 self.SetSizeHintsSz(wx.DefaultSize, wx.DefaultSize) #垂直和水平佈局控制器 bSizer1 = wx.BoxSizer(wx.VERTICAL) bSizer2 = wx.BoxSizer(wx.HORIZONTAL) #提示資訊,位於佈局控制器2 self.m_staticText1 = wx.StaticText(self, wx.ID_ANY, u"請輸入第一個欄位和資料型別", wx.DefaultPosition, wx.Size(130, 50), 0) self.m_staticText1.Wrap(-1) bSizer2.Add(self.m_staticText1, 0, wx.ALL, 5) #第一個欄位的名稱,位於佈局控制器2 self.m_textCtrl1 = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.Size(130, 50), 0) bSizer2.Add(self.m_textCtrl1, 0, wx.ALL, 5) #第一個欄位的型別,位於佈局控制器2 self.m_textCtrl7 = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.Size(100, 50), 0) bSizer2.Add(self.m_textCtrl7, 0, wx.ALL, 5) #主鍵複選框,位於佈局控制器2 self.m_checkBox1 = wx.CheckBox(self, wx.ID_ANY, u"PRIMARY KEY", wx.DefaultPosition, wx.Size(130, 50), 0) bSizer2.Add(self.m_checkBox1, 0, wx.ALL, 5) #自增複選框,位於佈局控制器2 self.m_checkBox2 = wx.CheckBox(self, wx.ID_ANY, u"AUTO_INCREMENT", wx.DefaultPosition, wx.Size(-1, 50), 0) bSizer2.Add(self.m_checkBox2, 0, wx.ALL, 5) #佈局控制器2位於佈局控制器1 bSizer1.Add(bSizer2, 0, wx.EXPAND, 5) #水平佈局控制器 bSizer3 = wx.BoxSizer(wx.HORIZONTAL) #提示資訊,位於佈局控制器3 self.m_staticText2 = wx.StaticText(self, wx.ID_ANY, u"請輸入第二個欄位和資料型別", wx.DefaultPosition, wx.Size(130, 50), 0) self.m_staticText2.Wrap(-1) bSizer3.Add(self.m_staticText2, 0, wx.ALL, 5) #第2個欄位名稱,位於佈局控制器3 self.m_textCtrl2 = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.Size(130, 50), 0) bSizer3.Add(self.m_textCtrl2, 0, wx.ALL, 5) #第2個欄位的型別,位於佈局控制器3 self.m_textCtrl8 = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.Size(100, 50), 0) bSizer3.Add(self.m_textCtrl8, 0, wx.ALL, 5) #選擇列表,主鍵或自增量,位於佈局控制器3 m_comboBox3Choices = [u"PRIMARY KEY", u"AUTO_INCREMENT"] self.m_comboBox3 = wx.ComboBox(self, wx.ID_ANY, u"主鍵、自增", wx.DefaultPosition, wx.Size(130, 50), m_comboBox3Choices, 0) bSizer3.Add(self.m_comboBox3, 0, wx.ALL, 5) #控制器3位於控制器1 bSizer1.Add(bSizer3, 0, wx.EXPAND, 5) #第3個欄位 bSizer4 = wx.BoxSizer(wx.HORIZONTAL) self.m_staticText3 = wx.StaticText(self, wx.ID_ANY, u"請輸入第三個欄位和資料型別", wx.DefaultPosition, wx.Size(130, 50), 0) self.m_staticText3.Wrap(-1) bSizer4.Add(self.m_staticText3, 0, wx.ALL, 5) self.m_textCtrl3 = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.Size(130, 50), 0) bSizer4.Add(self.m_textCtrl3, 0, wx.ALL, 5) self.m_textCtrl9 = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.Size(100, 50), 0) bSizer4.Add(self.m_textCtrl9, 0, wx.ALL, 5) bSizer1.Add(bSizer4, 0, wx.EXPAND, 5) #第4個欄位 bSizer5 = wx.BoxSizer(wx.HORIZONTAL) self.m_staticText4 = wx.StaticText(self, wx.ID_ANY, u"請輸入第四個欄位和資料型別", wx.DefaultPosition, wx.Size(130, 50), 0) self.m_staticText4.Wrap(-1) bSizer5.Add(self.m_staticText4, 0, wx.ALL, 5) self.m_textCtrl4 = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.Size(130, 50), 0) bSizer5.Add(self.m_textCtrl4, 0, wx.ALL, 5) self.m_textCtrl10 = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.Size(100, 50), 0) bSizer5.Add(self.m_textCtrl10, 0, wx.ALL, 5) self.m_staticText9 = wx.StaticText(self, wx.ID_ANY, u"如果欄位數量或者關鍵字不匹配請使用首頁的SQL語句傳入", wx.DefaultPosition, wx.Size(300, 50), 0) self.m_staticText9.Wrap(-1) self.m_staticText9.SetFont(wx.Font(13, 74, 90, 90, False, "Sans")) bSizer5.Add(self.m_staticText9, 0, wx.ALL, 5) bSizer1.Add(bSizer5, 0, wx.EXPAND, 5) #第5個欄位 bSizer6 = wx.BoxSizer(wx.HORIZONTAL) self.m_staticText5 = wx.StaticText(self, wx.ID_ANY, u"請輸入第五個欄位和資料型別", wx.DefaultPosition, wx.Size(130, 50), 0) self.m_staticText5.Wrap(-1) bSizer6.Add(self.m_staticText5, 0, wx.ALL, 5) self.m_textCtrl5 = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.Size(130, 50), 0) bSizer6.Add(self.m_textCtrl5, 0, wx.ALL, 5) self.m_textCtrl11 = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.Size(100, 50), 0) bSizer6.Add(self.m_textCtrl11, 0, wx.ALL, 5) bSizer1.Add(bSizer6, 0, wx.EXPAND, 5) #表名 bSizer7 = wx.BoxSizer(wx.HORIZONTAL) self.m_staticText7 = wx.StaticText(self, wx.ID_ANY, u"請輸入表名", wx.DefaultPosition, wx.Size(130, 50), 0) self.m_staticText7.Wrap(-1) bSizer7.Add(self.m_staticText7, 0, wx.ALL, 5) self.m_textCtrl6 = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.Size(130, 50), 0) bSizer7.Add(self.m_textCtrl6, 0, wx.ALL, 5) bSizer1.Add(bSizer7, 0, wx.EXPAND, 5) #空白標籤 bSizer8 = wx.BoxSizer(wx.HORIZONTAL) self.m_staticText8 = wx.StaticText(self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.Size(300, 50), 0) self.m_staticText8.Wrap(-1) bSizer8.Add(self.m_staticText8, 0, wx.ALL, 5) #確認按鈕 self.m_button2 = wx.Button(self, wx.ID_ANY, u"確定", wx.DefaultPosition, wx.Size(130, 50), 0) bSizer8.Add(self.m_button2, 0, wx.ALL, 5) bSizer1.Add(bSizer8, 1, wx.EXPAND, 5) #Window類的方法 self.SetSizer(bSizer1) self.Layout() self.Centre(wx.BOTH) # 控制元件和事件繫結 self.m_checkBox1.Bind(wx.EVT_CHECKBOX, self.m_checkBox1OnCheckBox) self.m_checkBox2.Bind(wx.EVT_CHECKBOX, self.m_checkBox2OnCheckBox) self.m_comboBox3.Bind(wx.EVT_COMBOBOX, self.m_comboBox3OnCombobox) self.m_button2.Bind(wx.EVT_BUTTON, self.m_button2OnButtonClick) ################################## #主鍵複選框選擇次數 self.count1=0 #自增量複選框選擇次數 self.count2=0 self.check_box1='' self.check_box2 = '' self.combo_box='' def __del__(self): pass # 當選擇為奇數時,表示選擇上,否則表示未選擇上 def m_checkBox1OnCheckBox(self, event): self.count1+=1 if(self.count1%2==1): self.check_box1 = 'PRIMARY KEY' else: self.check_box1 = '' # 當選擇為奇數時,表示選擇上,否則表示未選擇上 def m_checkBox2OnCheckBox(self, event): self.count2+=1 if(self.count2%2==1): self.check_box2 = 'AUTO_INCREMENT' else: self.check_box2 = '' # 獲取列表選擇框的值 def m_comboBox3OnCombobox(self, event): self.combo_box = self.m_comboBox3.GetValue() ''' 分6種情況來建立表 ''' def m_button2OnButtonClick(self, event): if(self.m_textCtrl1.GetValue()!='' and self.m_textCtrl2.GetValue()!='' and self.m_textCtrl3.GetValue()!='' and self.m_textCtrl4.GetValue()!='' and self.m_textCtrl5.GetValue()!=''): sql = "create table %s(%s %s %s %s,%s %s %s,%s %s,%s %s,%s %s);" \ % (self.m_textCtrl6.GetValue(), self.m_textCtrl1.GetValue(),self.m_textCtrl7.GetValue(), self.check_box1,self.check_box2, self.m_textCtrl2.GetValue(),self.m_textCtrl8.GetValue(),self.combo_box, self.m_textCtrl3.GetValue(),self.m_textCtrl9.GetValue(), self.m_textCtrl4.GetValue(),self.m_textCtrl10.GetValue(), self.m_textCtrl5.GetValue(),self.m_textCtrl11.GetValue() ) create=CreateTable(sql) notice=MyFrame3(None) notice.Show() elif(self.m_textCtrl1.GetValue()!='' and self.m_textCtrl2.GetValue()!='' and self.m_textCtrl3.GetValue()!='' and self.m_textCtrl4.GetValue()!=''): sql = "create table %s(%s %s %s %s,%s %s %s,%s %s,%s %s);" \ % (self.m_textCtrl6.GetValue(), self.m_textCtrl1.GetValue(),self.m_textCtrl7.GetValue(),self.check_box1, self.check_box2, self.m_textCtrl2.GetValue(),self.m_textCtrl8.GetValue(),self.combo_box, self.m_textCtrl3.GetValue(),self.m_textCtrl9.GetValue(), self.m_textCtrl4.GetValue(),self.m_textCtrl10.GetValue() ) create=CreateTable(sql) notice=MyFrame3(None) notice.Show() elif(self.m_textCtrl1.GetValue()!='' and self.m_textCtrl2.GetValue()!='' and self.m_textCtrl3.GetValue()!=''): sql = "create table %s(%s %s %s %s,%s %s %s,%s %s);" \ % (self.m_textCtrl6.GetValue(), self.m_textCtrl1.GetValue(),self.m_textCtrl7.GetValue(),self.check_box1, self.check_box2, self.m_textCtrl2.GetValue(),self.m_textCtrl8.GetValue(),self.combo_box, self.m_textCtrl3.GetValue(),self.m_textCtrl9.GetValue() ) create=CreateTable(sql) notice=MyFrame3(None) notice.Show() elif(self.m_textCtrl1.GetValue()!='' and self.m_textCtrl2.GetValue()!=''): sql = "create table %s(%s %s %s %s,%s %s %s);" \ % (self.m_textCtrl6.GetValue(), self.m_textCtrl1.GetValue(),self.m_textCtrl7.GetValue(),self.check_box1, self.check_box2, self.m_textCtrl2.GetValue(),self.m_textCtrl8.GetValue(),self.combo_box ) create=CreateTable(sql) notice=MyFrame3(None) notice.Show() elif(self.m_textCtrl1.GetValue()!=''): sql = "create table %s(%s %s %s %s);" \ % (self.m_textCtrl6.GetValue(), self.m_textCtrl1.GetValue(),self.m_textCtrl7.GetValue(), self.check_box1,self.check_box2 ) create=CreateTable(sql) notice=MyFrame3(None) notice.Show() elif(not (self.m_textCtrl1.GetValue()!='' and self.m_textCtrl2.GetValue()!='' and self.m_textCtrl3.GetValue()!='' and self.m_textCtrl4.GetValue()!='' and self.m_textCtrl5.GetValue()!='')): notice = MyFrame3(None,"請檢查是否輸入了欄位!") notice.Show() if __name__=='__main__': app=wx.App() window=MyFrame5(None) window.Show() app.MainLoop()
2 執行結果
四 儲存資料記錄
# -*- coding: UTF-8 -*-
import MySQLdb
from ReadCode import ReadCode
from Notice import MyFrame3
class SaveDocument():
def __init__(self,sql):
readcode = ReadCode()
Line = readcode.return_line()
# 開啟資料庫連線
db = MySQLdb.connect("localhost", "%s" % Line[0],
"%s" % Line[1], "%s" % Line[2])
# 使用cursor()方法獲取操作遊標
cursor = db.cursor()
# SQL 更新語句
try:
# 執行SQL語句
cursor.execute(sql)
# 提交到資料庫執行
db.commit()
except:
db.rollback()
window=MyFrame3(None,"失敗!")
window.Show()
# 關閉資料庫連線
db.close()
五 資料記錄儲存
1 程式碼
# -*- coding: utf-8 -*-
###########################################################################
## Python code generated with wxFormBuilder (version Feb 16 2016)
## http://www.wxformbuilder.org/
##
## PLEASE DO "NOT" EDIT THIS FILE!
###########################################################################
import wx
import wx.xrc
from Check_Database import Check_Database
from Check_Desc import Check_Desc
from Save_Document import SaveDocument
from Notice import MyFrame3
###########################################################################
## Class MyFrame31
###########################################################################
class MyFrame31(wx.Frame):
def __init__(self, parent):
#初始化框架
wx.Frame.__init__(self, parent, id=wx.ID_ANY, title=wx.EmptyString,
pos=wx.DefaultPosition,size=wx.Size(652, 585),
style=wx.DEFAULT_FRAME_STYLE | wx.TAB_TRAVERSAL)
#Windows類的方法
self.SetSizeHintsSz(wx.DefaultSize, wx.DefaultSize)
#垂直佈局管理器
bSizer1 = wx.BoxSizer(wx.VERTICAL)
bSizer3 = wx.BoxSizer(wx.VERTICAL)
#提示資訊,位於佈局控制器3
self.m_staticText3 = wx.StaticText(self, wx.ID_ANY, u"所有的表如下",
wx.DefaultPosition, wx.DefaultSize, 0)
self.m_staticText3.Wrap(-1)
self.m_staticText3.SetFont(wx.Font(22, 74, 90, 90, False, "Sans"))
bSizer3.Add(self.m_staticText3, 0, wx.ALL, 5)
#用於存放特定資料庫的表,位於佈局控制器3
self.m_textCtrl3 = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString,
wx.DefaultPosition, wx.Size(800, 100),
style=wx.TE_MULTILINE|wx.TE_READONLY)
bSizer3.Add(self.m_textCtrl3, 0, wx.ALL, 5)
#佈局控制器位於佈局控制器1
bSizer1.Add(bSizer3, 0, wx.EXPAND, 5)
#水平佈局控制器
bSizer2 = wx.BoxSizer(wx.HORIZONTAL)
#提示資訊,位於佈局控制器2
self.m_staticText1 = wx.StaticText(self, wx.ID_ANY, u"請輸入想要輸入資料的表名",
wx.DefaultPosition, wx.Size(200, 50), 0)
self.m_staticText1.Wrap(-1)
bSizer2.Add(self.m_staticText1, 0, wx.ALL, 5)
#要輸入的表名,位於佈局控制器2
self.m_textCtrl2 = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString,
wx.DefaultPosition, wx.Size(200, 50), 0)
bSizer2.Add(self.m_textCtrl2, 0, wx.ALL, 5)
#確定按鈕,位於佈局控制器2
self.m_button1 = wx.Button(self, wx.ID_ANY, u"確定", wx.DefaultPosition
, wx.Size(100, 50), 0)
bSizer2.Add(self.m_button1, 0, wx.ALL, 5)
#佈局控制器2位於佈局控制1
bSizer1.Add(bSizer2, 0, wx.EXPAND, 5)
#垂直佈局控制器
bSizer4 = wx.BoxSizer(wx.VERTICAL)
#表的自段資訊提示
self.m_staticText4 = wx.StaticText(self, wx.ID_ANY, u"表中所有欄位如下",
wx.DefaultPosition, wx.DefaultSize, 0)
self.m_staticText4.Wrap(-1)
bSizer4.Add(self.m_staticText4, 0, wx.ALL, 5)
self.m_textCtrl4 = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString,
wx.DefaultPosition, wx.Size(800, 50),
style=wx.TE_MULTILINE|wx.TE_READONLY)
bSizer4.Add(self.m_textCtrl4, 0, wx.ALL, 5)
bSizer1.Add(bSizer4, 0, wx.EXPAND, 5)
bSizer5 = wx.BoxSizer(wx.VERTICAL)
self.m_staticText5 = wx.StaticText(self, wx.ID_ANY,
u"請輸入想要存入的欄位名(用“,”隔開)",
wx.DefaultPosition, wx.DefaultSize,0)
self.m_staticText5.Wrap(-1)
bSizer5.Add(self.m_staticText5, 0, wx.ALL, 5)
# 要存的欄位名
self.m_textCtrl5 = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString,
wx.DefaultPosition, wx.Size(800, 50), 0)
bSizer5.Add(self.m_textCtrl5, 0, wx.ALL, 5)
bSizer1.Add(bSizer5, 0, wx.EXPAND, 5)
bSizer6 = wx.BoxSizer(wx.VERTICAL)
self.m_staticText6 = wx.StaticText(self, wx.ID_ANY, u"請輸入想要存入的欄位的VALUES",
wx.DefaultPosition, wx.Size(-1, -1),0)
self.m_staticText6.Wrap(-1)
bSizer6.Add(self.m_staticText6, 0, wx.ALL, 5)
# 要存欄位名的值
self.m_textCtrl6 = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString,
wx.DefaultPosition, wx.Size(800, 50), 0)
bSizer6.Add(self.m_textCtrl6, 0, wx.ALL, 5)
bSizer1.Add(bSizer6, 0, wx.EXPAND, 5)
bSizer7 = wx.BoxSizer(wx.HORIZONTAL)
self.m_staticText7 = wx.StaticText(self, wx.ID_ANY, wx.EmptyString,
wx.DefaultPosition, wx.Size(240, 50), 0)
self.m_staticText7.Wrap(-1)
bSizer7.Add(self.m_staticText7, 0, wx.ALL, 5)
self.m_button2 = wx.Button(self, wx.ID_ANY, u"確定",
wx.DefaultPosition, wx.Size(100, 50), 0)
bSizer7.Add(self.m_button2, 0, wx.ALL, 5)
bSizer1.Add(bSizer7, 0, wx.EXPAND, 5)
self.SetSizer(bSizer1)
self.Layout()
self.Centre(wx.BOTH)
# 按鈕繫結事件
self.m_button1.Bind(wx.EVT_BUTTON, self.m_button1OnButtonClick)
self.m_button2.Bind(wx.EVT_BUTTON, self.m_button2OnButtonClick)
#################################################################
#顯示資料表
check_database=Check_Database('show tables')
show=''
for i in range(0,len(check_database.return_result)):
show+=check_database.return_result[i]
self.m_textCtrl3.SetValue(show)
def __del__(self):
pass
# 表結構
def m_button1OnButtonClick(self, event):
table_name=self.m_textCtrl2.GetValue()
desc=Check_Desc(table_name)
result=''
for i in range(0,len(desc.return_result)):
result+=desc.return_result[i]
self.m_textCtrl4.SetValue('%s'%result)
def m_button2OnButtonClick(self, event):
#獲取欄位
insert_ziduan = self.m_textCtrl5.GetValue()
#獲得資料
insert_values=self.m_textCtrl6.GetValue()
sql="insert into %s(%s) VALUES(%s);"%(self.m_textCtrl2.GetValue(),
insert_ziduan,insert_values)
print sql
save_document=SaveDocument(sql)
notice=MyFrame3(None)
notice.Show()
#測試
if __name__=='__main__':
app=wx.App()
window=MyFrame31(None)
window.Show()
app.MainLoop()
2 執行結果