1. 程式人生 > >Python之資料庫增加模組

Python之資料庫增加模組

一 增加資料庫介面

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 執行結果