gpt4 book ai didi

python - 加载数据库?

转载 作者:太空宇宙 更新时间:2023-11-03 10:26:11 25 4
gpt4 key购买 nike

我的问题是在连接到 MySQL 数据库时我该如何做?为了更清楚地说明这一点:假设我尝试连接到数据库:

db = MySQLdb.connect(host = "testhost",user ="testuser", passwd ="testpw", db = "testdb")

好吧,一般来说,当主机不是本地主机时,它通常会占用一些时间来加载,而当这种情况发生时,应用程序会“卡住”(我使用的是 wxPython)。现在,我想要的是,而不是“卡住”,它会显示一些代表“正在加载”的东西,它可以是图像,文本,不要紧,而不是卡住。另外,闪屏怎么样?据我所试,我所做的只是一些闪屏,当我点击它时,它们会在 X 次后消失。我真的不知道如何利用它来加载资源,例如 MySQL 数据库。上次我尝试使用闪屏加载 MySQL 数据库时,它实际上是先加载,然后才显示闪屏(笑)。谢谢。

最佳答案

感谢您的所有帮助,我得到了一个答案,一个针对 wxPython 的更具体的答案。我按照这个简单的例子让它工作:

import wx
import thread
from time import sleep

class MainFrame(wx.Frame):

def __init__(self, parent):
wx.Frame.__init__(self, parent)

self.label = wx.StaticText(self, label="Ready")
self.btn = wx.Button(self, label="Start")
self.gauge = wx.Gauge(self)

sizer = wx.BoxSizer(wx.VERTICAL)
sizer.Add(self.label, proportion=1, flag=wx.EXPAND)
sizer.Add(self.btn, proportion=0, flag=wx.EXPAND)
sizer.Add(self.gauge, proportion=0, flag=wx.EXPAND)

self.SetSizerAndFit(sizer)

self.Bind(wx.EVT_BUTTON, self.onButton)

def onButton(self, evt):
self.btn.Enable(False)
self.gauge.SetValue(0)
self.label.SetLabel("Running")
thread.start_new_thread(self.longRunning, ())

def onLongRunDone(self):
self.gauge.SetValue(100)
self.label.SetLabel("Done")
self.btn.Enable(True)

def longRunning(self):
"""This runs in a different thread. Sleep is used to simulate a long running task."""
sleep(3)
wx.CallAfter(self.gauge.SetValue, 20)
sleep(5)
wx.CallAfter(self.gauge.SetValue, 50)
sleep(1)
wx.CallAfter(self.gauge.SetValue, 70)
sleep(10)
wx.CallAfter(self.onLongRunDone)

if __name__ == "__main__":
app = wx.PySimpleApp()
app.TopWindow = MainFrame(None)
app.TopWindow.Show()
app.MainLoop()

来自这里:http://wiki.wxpython.org/LongRunningTasks ,希望这有帮助:)。

关于python - 加载数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5366042/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com