Python之数据库删除模块

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/chengqiuming/article/details/84502143

一 主界面

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 Delete_DataBase import MyFrame13
from Delete_Table import MyFrame15
from Delete_Document import MyFrame17
###########################################################################
## Class MyFrame11
###########################################################################
class MyFrame11(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, 155),
                          style=wx.DEFAULT_FRAME_STYLE | wx.TAB_TRAVERSAL)
        #Window类的方法
        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_button10 = wx.Button(self, wx.ID_ANY, u"删除DATABASE",
                                    wx.DefaultPosition, wx.Size(120, 50), 0)
        bSizer8.Add(self.m_button10, 0, wx.ALL, 5)
        #删除TABLE按钮,位于布局控制器8中
        self.m_button11 = wx.Button(self, wx.ID_ANY, u"删除TABLE",
                                    wx.DefaultPosition, wx.Size(120, 50), 0)
        bSizer8.Add(self.m_button11, 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_button12 = wx.Button(self, wx.ID_ANY, u"删除记录",
                                    wx.DefaultPosition, wx.Size(120, 50), 0)
        bSizer9.Add(self.m_button12, 0, wx.ALL, 5)
        #退出按钮,位于布局控制器9中
        self.m_button13 = wx.Button(self, wx.ID_ANY, u"退出",
                                    wx.DefaultPosition, wx.Size(120, 50), 0)
        bSizer9.Add(self.m_button13, 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_button10.Bind(wx.EVT_BUTTON, self.m_button10OnButtonClick)
        self.m_button11.Bind(wx.EVT_BUTTON, self.m_button11OnButtonClick)
        self.m_button12.Bind(wx.EVT_BUTTON, self.m_button12OnButtonClick)
        self.m_button13.Bind(wx.EVT_BUTTON, self.m_button13OnButtonClick)
    def __del__(self):
        pass
    # 单击各按钮,显示对应窗口
    def m_button10OnButtonClick(self, event):
        window = MyFrame13(None)
        window.Show()
    def m_button11OnButtonClick(self, event):
        window = MyFrame15(None)
        window.Show()
    def m_button12OnButtonClick(self, event):
        window = MyFrame17(None)
        window.Show()
    def m_button13OnButtonClick(self, event):
        exit()
#测试
if __name__=='__main__':
    app=wx.App()
    window=MyFrame11(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 Notice import MyFrame3
from Check_Database import Check_Database
###########################################################################
## Class MyFrame13
###########################################################################
class MyFrame13(wx.Frame):
    def __init__(self, parent):
        #框架初始化
        wx.Frame.__init__(self, parent, id=wx.ID_ANY, title=wx.EmptyString,
                          pos=wx.DefaultPosition,size=wx.Size(561, 365),
                          style=wx.DEFAULT_FRAME_STYLE | wx.TAB_TRAVERSAL)
        #Window类的方法
        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(200, 50),0)
        self.m_staticText8.Wrap(-1)
        bSizer11.Add(self.m_staticText8, 0, wx.ALL, 5)
        #用户要删除的表,位于布局控制器11中
        self.m_textCtrl7 = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString,
                                       wx.DefaultPosition, wx.Size(120, 50), 0)
        bSizer11.Add(self.m_textCtrl7, 0, wx.ALL, 5)
        #布局控制器11位于布局控制器10中
        bSizer10.Add(bSizer11, 0, wx.EXPAND, 5)
        #水平布局控制器
        bSizer12 = wx.BoxSizer(wx.HORIZONTAL)
        #空白标签,位于布局控制器12中
        self.m_staticText9 = wx.StaticText(self, wx.ID_ANY, wx.EmptyString,
                                           wx.DefaultPosition, wx.Size(200, 50), 0)
        self.m_staticText9.Wrap(-1)
        bSizer12.Add(self.m_staticText9, 0, wx.ALL, 5)
        #确定按钮位于布局控制器12中
        self.m_button14 = wx.Button(self, wx.ID_ANY, u"确定",
                                    wx.DefaultPosition, wx.Size(120, 50), 0)
        bSizer12.Add(self.m_button14, 0, wx.ALL, 5)
        #布局控制器12位于布局控制器10中
        bSizer10.Add(bSizer12, 0, wx.EXPAND, 5)
        #垂直布局控制器
        bSizer13 = wx.BoxSizer(wx.VERTICAL)
        #要删除的数据库列,多行,只读,位于布局控制器13中
        self.m_textCtrl8 = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString,
                                       wx.DefaultPosition, wx.Size(600, 500),
                                       style=wx.TE_READONLY|wx.TE_MULTILINE)
        bSizer13.Add(self.m_textCtrl8, 0, wx.ALL, 5)
        #布局控制器13位于布局控制器10中
        bSizer10.Add(bSizer13, 1, wx.EXPAND, 5)
        #Window类的三个方法
        self.SetSizer(bSizer10)
        self.Layout()
        self.Centre(wx.BOTH)
        # 按钮和事件绑定
        self.m_button14.Bind(wx.EVT_BUTTON, self.m_button14OnButtonClick)
        ##################check_database###############
        #显示数据库列表
        check_database=Check_Database('show databases','1')
        show=''
        for i in range(0,len(check_database.return_result)):
            show+=check_database.return_result[i]
        self.m_textCtrl8.SetValue(show)
    def __del__(self):
        pass
    # 删除数据库
    def m_button14OnButtonClick(self, event):
        if(self.m_textCtrl7.GetValue()==''):
            window=MyFrame3(None,'请输入DATABASE!')
            window.Show()
        else:
            sql="drop database %s"%self.m_textCtrl7.GetValue()
            check_database=Check_Database(sql,'1')
            window=MyFrame3(None)
            window.Show()

#测试
if __name__=='__main__':
    app=wx.App()
    window=MyFrame13(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 Check_Database import Check_Database
from Notice import MyFrame3
###########################################################################
## Class MyFrame15
###########################################################################
class MyFrame15(wx.Frame):
    def __init__(self, parent):
        #初始化框架
        wx.Frame.__init__(self, parent, id=wx.ID_ANY, title=wx.EmptyString,
                          pos=wx.DefaultPosition,size=wx.Size(561, 365),
                          style=wx.DEFAULT_FRAME_STYLE | wx.TAB_TRAVERSAL)
        #window的方法
        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"请输入想要删除的TABLE",
                                           wx.DefaultPosition, wx.Size(200, 50),0)
        self.m_staticText8.Wrap(-1)
        bSizer11.Add(self.m_staticText8, 0, wx.ALL, 5)
        #数据表输入框,位于布局控制器11中
        self.m_textCtrl7 = wx.TextCtrl(self, wx.ID_ANY,
                                       wx.EmptyString, wx.DefaultPosition,
                                       wx.Size(120, 50), 0)
        bSizer11.Add(self.m_textCtrl7, 0, wx.ALL, 5)
        #布局控制器11位于布局控制器10中
        bSizer10.Add(bSizer11, 0, wx.EXPAND, 5)
        #水平布局控制器
        bSizer12 = wx.BoxSizer(wx.HORIZONTAL)
        #空白框位于布局控制器12
        self.m_staticText9 = wx.StaticText(self, wx.ID_ANY,
                                           wx.EmptyString, wx.DefaultPosition,
                                           wx.Size(200, 50), 0)
        self.m_staticText9.Wrap(-1)
        bSizer12.Add(self.m_staticText9, 0, wx.ALL, 5)
        #确认按钮位于布局控制器12中
        self.m_button14 = wx.Button(self, wx.ID_ANY, u"确定",
                                    wx.DefaultPosition, wx.Size(120, 50), 0)
        bSizer12.Add(self.m_button14, 0, wx.ALL, 5)
        #布局控制器12位于布局控制器10中
        bSizer10.Add(bSizer12, 0, wx.EXPAND, 5)
        #水平布局控制器
        bSizer13 = wx.BoxSizer(wx.VERTICAL)
        #数据表列表,只读,多行,位于布局控制器13中
        self.m_textCtrl8 = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString,
                                       wx.DefaultPosition, wx.Size(600, 500),
                                       style=wx.TE_READONLY|wx.TE_MULTILINE)
        bSizer13.Add(self.m_textCtrl8, 0, wx.ALL, 5)
        #布局控制器13位于布局控制器10中
        bSizer10.Add(bSizer13, 1, wx.EXPAND, 5)
        #window类的方法
        self.SetSizer(bSizer10)
        self.Layout()
        self.Centre(wx.BOTH)
        # 按钮绑定事件
        self.m_button14.Bind(wx.EVT_BUTTON, self.m_button14OnButtonClick)
        ######################Check_Database##############################
        #列表显示数据表
        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_textCtrl8.SetValue(show)
    def __del__(self):
        pass
    # 控件绑定的事件
    def m_button14OnButtonClick(self, event):
        sql="drop table %s"%self.m_textCtrl7.GetValue()
        check=Check_Database(sql)
        window=MyFrame3(None)
        window.Show()

#测试
if __name__=='__main__':
    app=wx.App()
    window=MyFrame15(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 Check_Database import Check_Database
from Check_Document import Check_Document
from Notice import MyFrame3
from Delete_Document_Fun import Delete_Document_Fun
from Check_Desc import Check_Desc
###########################################################################
## Class MyFrame17
###########################################################################
class MyFrame17(wx.Frame):
    def __init__(self, parent):
        #初始化框架
        wx.Frame.__init__(self, parent, id=wx.ID_ANY, title=wx.EmptyString,
                          pos=wx.DefaultPosition,size=wx.Size(617, 490),
                          style=wx.DEFAULT_FRAME_STYLE | wx.TAB_TRAVERSAL)
        #Window类的方法
        self.SetSizeHintsSz(wx.DefaultSize, wx.DefaultSize)
        #垂直布局控制器和水平布局控制器
        bSizer14 = wx.BoxSizer(wx.VERTICAL)
        bSizer15 = wx.BoxSizer(wx.HORIZONTAL)
        #提示信息,位于布局控制器15
        self.m_staticText10 = wx.StaticText(self, wx.ID_ANY,
                                            u"请输入表名查看记录然后再进行删除",
                                            wx.DefaultPosition, wx.Size(-1, 50),0)
        self.m_staticText10.Wrap(-1)
        bSizer15.Add(self.m_staticText10, 0, wx.ALL, 5)
        #输入框位于布局控制器15
        self.m_textCtrl9 = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString,
                                       wx.DefaultPosition, wx.Size(150, 50), 0)
        bSizer15.Add(self.m_textCtrl9, 0, wx.ALL, 5)
        #确认按钮位于布局控制器15
        self.m_button15 = wx.Button(self, wx.ID_ANY, u"确定", wx.DefaultPosition,
                                    wx.Size(100, 50), 0)
        bSizer15.Add(self.m_button15, 0, wx.ALL, 5)
        #布局控制器15位于布局控制器14中
        bSizer14.Add(bSizer15, 0, wx.EXPAND, 5)
        #水平布局控制器16
        bSizer16 = wx.BoxSizer(wx.HORIZONTAL)
        #数据列表,多行,只读,位于布局控制器16
        self.m_textCtrl4 = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString,
                                       wx.DefaultPosition, wx.Size(190, 300),
                                       style=wx.TE_MULTILINE|wx.TE_READONLY)
        bSizer16.Add(self.m_textCtrl4, 0, wx.ALL, 5)
        #绑定数据表的记录,位于布局控制器16
        self.m_textCtrl10 = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString,
                                        wx.DefaultPosition, wx.Size(700, 300),
                                        style=wx.TE_MULTILINE|wx.TE_READONLY)
        bSizer16.Add(self.m_textCtrl10, 0, wx.ALL, 5)
        bSizer14.Add(bSizer16, 0, wx.EXPAND, 5)
        #水平布局控制器
        bSizer17 = wx.BoxSizer(wx.HORIZONTAL)
        #提示信息,位于布局控制器17
        self.m_staticText11 = wx.StaticText(self, wx.ID_ANY,
                                            u"请输入需要删除的记录的条件(例如:ID=3)",
                                            wx.DefaultPosition,wx.Size(-1, 50), 0)
        self.m_staticText11.Wrap(-1)
        bSizer17.Add(self.m_staticText11, 0, wx.ALL, 5)
        #删除条件,位于布局控制器17
        self.m_textCtrl11 = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString,
                                        wx.DefaultPosition, wx.Size(200, 50), 0)
        bSizer17.Add(self.m_textCtrl11, 0, wx.ALL, 5)

        #删除按钮,位于布局控制器17
        self.m_button17 = wx.Button(self, wx.ID_ANY, u"确定删除",
                                    wx.DefaultPosition, wx.Size(120, 50), 0)
        bSizer17.Add(self.m_button17, 0, wx.ALL, 5)
        #bSizer14.Add(bSizer18, 1, wx.EXPAND, 5)
        # 布局控制器17位于布局控制器14中
        bSizer14.Add(bSizer17, 0, wx.EXPAND, 5)
        #Window类的方法
        self.SetSizer(bSizer14)
        self.Layout()
        self.Centre(wx.BOTH)
        # 按钮绑定事件
        self.m_button15.Bind(wx.EVT_BUTTON, self.m_button15OnButtonClick)
        self.m_button17.Bind(wx.EVT_BUTTON, self.m_button17OnButtonClick)
        result=''
        #显示特定数据库的数据表列表
        check_database = Check_Database('show tables')
        for i in range(0, len(check_database.return_result)):
            result+=check_database.return_result[i]
        self.m_textCtrl4.SetValue(result)
    def __del__(self):
        pass
    # 按钮绑定事件
    # 显示表的详细信息
    def m_button15OnButtonClick(self, event):
        if(self.m_textCtrl9.GetValue()!=''):
            check1=Check_Document('%s'%self.m_textCtrl9.GetValue())
            check2=Check_Desc('%s'%self.m_textCtrl9.GetValue())
            print self.m_textCtrl9.GetValue()
            result=''
            for j in range(0,len(check2.return_result)):
                result+=str(check2.return_result[j])
            for i in range(0, len(check1.return_result)):
                result += str(check1.return_result[i])
                result += " "
            self.m_textCtrl10.SetValue(result)
        else:
            window=MyFrame3(None,"请输入TABLE")
            window.Show()
    #删除表数据
    def m_button17OnButtonClick(self, event):
        try:
            sql="delete from %s where %s"%(self.m_textCtrl9.GetValue(),
                                           self.m_textCtrl11.GetValue())
        except:
            window=MyFrame3(None,"请检查条件!")
            window.Show()
        else:
            check=Delete_Document_Fun(sql)
            window=MyFrame3(None)
            window.Show()

#测试
if __name__=='__main__':
    app=wx.App()
    window=MyFrame17(None)
    window.Show()
    app.MainLoop()

2 运行结果

五 删除表记录功能

1 代码

# -*- coding:utf-8 -*-
import MySQLdb
from ReadCode import ReadCode
from Notice import MyFrame3
class Delete_Document_Fun():
    def __init__(self,sql):
        readcode = ReadCode()
        Line = readcode.return_line()
        try:
            db = MySQLdb.connect("localhost", "%s" % Line[0],
                                 "%s" % Line[1], "%s" % Line[2])
        except:
            notice = MyFrame3(None, '请检查主面板的用户名、'
                                    '密码、DATABASE是否输入!')
            notice.Show()
        else:
            # 使用cursor()方法获取操作游标
            cursor = db.cursor()
            try:
                # 执行SQL语句
                cursor.execute(sql)
db.commit()
            except:
                db.rollback()
                notice = MyFrame3(None, "执行SQL语句出错!")
                notice.Show()
            # 关闭数据库连接
        db.close()

猜你喜欢

转载自blog.csdn.net/chengqiuming/article/details/84502143