使用 Python和 SQLite 打造一个简单的数据库浏览器

在日常开发中,我们常常需要快速查看和操作SQLite数据库中的数据。虽然有许多现成的工具可以完成这一任务,但有时你可能想要一个更为简单、可定制的解决方案。在这篇博客中,我将带你一步步构建一个简单的SQLite数据库浏览器,它可以用来列出数据库中的表名、查看表的字段名、编写SQL语句并执行查询操作,并将结果展示在网格中。我们将使用 wxPython 来创建这个图形用户界面。
C:\pythoncode\new\sqliteanalysis.py

全部代码

import wx
import sqlite3
import wx.grid as gridlib

class SQLiteBrowser(wx.Frame):
    def __init__(self, *args, **kw):
        super(SQLiteBrowser, self).__init__(*args, **kw)

        self.InitUI()
        self.conn = None

    def InitUI(self):
        panel = wx.Panel(self)

        vbox = wx.BoxSizer(wx.VERTICAL)

        hbox1 = wx.BoxSizer(wx.HORIZONTAL)
        self.btn_open = wx.Button(panel, label="Open Database")
        self.btn_open.Bind(wx.EVT_BUTTON, self.OnOpen)
        hbox1.Add(self.btn_open, flag=wx.LEFT, border=10)
        vbox.Add(hbox1, flag=wx.EXPAND | wx.TOP | wx.BOTTOM, border=10)

        hbox2 = wx.BoxSizer(wx.HORIZONTAL)
        self.listbox1 = wx.ListBox(panel)
        self.listbox1.Bind(wx.EVT_LISTBOX, self.OnTableSelected)
        hbox2.Add(self.listbox1, proportion=1, flag=wx.EXPAND | wx.ALL, border=10)
        
        self.listbox2 = wx.ListBox(panel)
        self.listbox2.Bind(wx.EVT_LISTBOX, self.OnColumnSelected)
        hbox2.Add(self.listbox2, proportion=1, flag=wx.EXPAND | wx.ALL, border=10)

        vbox.Add(hbox2, proportion=1, flag=wx.EXPAND)

        hbox3 = wx.BoxSizer(wx.HORIZONTAL)
        self.text_ctrl = wx.TextCtrl(panel, style=wx.TE_MULTILINE)
        hbox3.Add(self.text_ctrl, proportion=1, flag=wx.EXPAND | wx.ALL, border=10)

        self.btn_exec = wx.Button(panel, label="Execute SQL")
        self.btn_exec.Bind(wx.EVT_BUTTON, self.OnExecuteSQL)
        hbox3.Add(self.btn_exec, flag=wx.LEFT, border=10)

        vbox.Add(hbox3, proportion=1, flag=wx.EXPAND)

        hbox4 = wx.BoxSizer(wx.HORIZONTAL)
        self.grid = gridlib.Grid(panel)
        self.grid.CreateGrid(5, 5)
        hbox4.Add(self.grid, proportion=1, flag=wx.EXPAND | wx.ALL, border=10)

        vbox.Add(hbox4, proportion=3, flag=wx.EXPAND)

        panel.SetSizer(vbox)
        self.SetTitle('SQLite Browser')
        self.Centre()

    def OnOpen(self, event):
        with wx.FileDialog(self, "Open SQLite file", wildcard="SQLite files (*.db)|*.db",
                           style=wx.FD_OPEN | wx.FD_FILE_MUST_EXIST) as fileD
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值