首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用wxPython显示SQL查询结果

使用wxPython显示SQL查询结果
EN

Stack Overflow用户
提问于 2016-12-01 23:31:11
回答 1查看 601关注 0票数 0

我正在尝试从SQL查询中获取结果,以便在执行脚本时显示在文本"Tickets Closed Last 24小时“旁边。

SQL查询返回单个数字。我正在尝试获取要在self.some_text的StaticText框中显示的数字,它会在运行时将标签文本更改为数字。

示例:https://s11.postimg.org/jil0kzfqb/tickets.png在图像中没有来自SQL查询的数字。(您可以忽略地址、单位编号和城市文本和方框)

我正在关闭其他人创建的另一个程序,因此可能不需要这些代码。我正在尝试在飞行中学习SQL和Python,现在几乎还是个新手。

这是我到目前为止的代码:

代码语言:javascript
复制
import wx
import MySQLdb

db = MySQLdb.connect(host="xxxxxxxxxxxx",port=xxx,user="xx",passwd="xxxxx",db="xxxx")

class Data():
    def TicketsClosedLast24Hours(self, event):
        cur = db.cursor()
        cur.execute("Select COUNT(*) FROM HD_TICKET WHERE HD_STATUS_ID = 12 AND TIME_CLOSED >= NOW() - INTERVAL 1 DAY")
        row = cur.fetchone()
        print(row[0])
        row = cur.fetchone()

class MainFrame(wx.Frame):
    def __init__(self):
        wx.Frame.__init__(self, None)

        self.Centre()
        self.Maximize(True)

        self.background = wx.Panel(self)
        self.background.SetBackgroundColour(wx.Colour(98, 125, 152))

        self.some_text = wx.StaticText(self.background, wx.ID_ANY, label="", style=wx.ALIGN_CENTER)
        self.Address = wx.TextCtrl(self.background, -1, "", size=(140, -1))
        self.UnitNumber = wx.TextCtrl(self.background, -1, "", size=(140, -1))
        self.City = wx.TextCtrl(self.background, -1, "", size=(140, -1))

        self.horizontalRow0 = wx.BoxSizer()
        img1 = wx.Image("logo1.bmp", wx.BITMAP_TYPE_BMP, -1)
        self.bitmap1 = wx.StaticBitmap(self.background, -1, wx.BitmapFromImage(img1), (55, 0))
        self.horizontalRow0.Add(self.bitmap1, wx.Center, border=10)

        self.VerticalRow1 = wx.BoxSizer(wx.VERTICAL)
        self.VerticalRow1.Add(wx.StaticText(self.background, -1, "Tickets Closed Last 24 Hours",
                                            style=wx.ALIGN_CENTER), flag=wx.ALL, border=5)
        self.VerticalRow1.Add(wx.StaticText(self.background, -1, "Address:",
                                            style=wx.ALIGN_CENTER), flag=wx.ALL, border=9)
        self.VerticalRow1.Add(wx.StaticText(self.background, -1, "Unit Number:",
                                            style=wx.ALIGN_CENTER), flag=wx.ALL, border=9)
        self.VerticalRow1.Add(wx.StaticText(self.background, -1, "City:",
                                            style=wx.ALIGN_CENTER), flag=wx.ALL, border=9)

        # To add labels - H-1 V-2
        self.VerticalRow2 = wx.BoxSizer(wx.VERTICAL)
        self.VerticalRow2.Add(self.some_text, proportion=1, flag=wx.ALL, border=6)
        self.VerticalRow2.Add(self.Address, proportion=1, flag=wx.ALL, border=6)
        self.VerticalRow2.Add(self.UnitNumber, proportion=1, flag=wx.ALL, border=6)
        self.VerticalRow2.Add(self.City, proportion=1, flag=wx.ALL, border=6)

        # Combine V-1 And V-2 to H1
        self.horizontalRow1 = wx.BoxSizer()
        self.horizontalRow1.Add((30, 30), proportion=0, flag=wx.EXPAND, border=0)
        self.horizontalRow1.Add(self.VerticalRow1, proportion=.5)
        self.horizontalRow1.Add(self.VerticalRow2, proportion=0)

        # To add labels - H-3 V-8
        self.VerticalRow1 = wx.BoxSizer(wx.VERTICAL)

        # To add labels - H-4 V-9
        self.horizontalRow4 = wx.BoxSizer()
        self.horizontalRow4.Add((30, 30), proportion=.5, flag=wx.EXPAND, border=0)
        self.horizontalRow4.Add((30, 30), proportion=1, flag=wx.EXPAND, border=0)

        # Adds horizontal Rows to Main Window in Vertical boxes
        self.verticalBox = wx.BoxSizer(wx.VERTICAL)
        self.verticalBox.Add(self.horizontalRow0, proportion=0, flag=wx.EXPAND, border=10)
        self.verticalBox.Add((10, 10), proportion=0, flag=wx.EXPAND, border=10)
        self.verticalBox.Add(self.horizontalRow1, proportion=0, flag=wx.EXPAND, border=0)
        self.verticalBox.Add((10, 10), proportion=0, flag=wx.EXPAND, border=10)
        self.verticalBox.Add(self.horizontalRow4, proportion=0, flag=wx.EXPAND, border=0)

        self.background.SetSizer(self.verticalBox)
        self.Show()

    def someFunction(self):
        mysql_data = databasemodel.returnData()  # query your database to return a string
        self.some_text.SetLabel(mysql_data)


if __name__ == '__main__':
    app = wx.App(redirect=False)
    window = MainFrame()
    app.MainLoop()

任何帮助都将不胜感激。

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2016-12-06 03:50:22

代码在我看来是正确的。不过,我没有看到任何实际调用someFunction的东西。我猜这就是问题所在。您应该尝试调用该函数并将mysql_data输出到标准输出,以确保您收到的结果是您所期望的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40914549

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档