【问题标题】:How make Python acess another database如何让 Python 访问另一个数据库
【发布时间】:2019-03-19 13:20:48
【问题描述】:

我的数据库有问题。我需要创建一个可以更改数据库并访问另一个的按钮。比如我用的是数据库:data.db。单击“更改”更改目标,并连接到 data2.db。我不知道如何执行更改对另一个数据库的访问的功能。我感谢任何可以帮助我的人。

class griffo:
db_name = 'database.db'

 def __init__(self, window):


        self.wind = window

        self.wind.title('GRIFFO HISTORYPEDIA')

        #This is the code to insert a icon on the main WINDOW

        icon = PhotoImage(file='griffoicone.png') 
        self.wind.call('wm', 'iconphoto', self.wind._w, icon)

        self.wind.configure(background='gray15')

        framename = LabelFrame(self.wind, text = '', foreground="azure")
        framename.grid(row = 0, column = 0, columnspan = 3, pady = 5)
        framename.configure(background='gray15')

def run_query(self, query, parameters = ()):
        with sqlite3.connect(self.db_name) as conn:
            cursor = conn.cursor()
            cursor.execute("CREATE TABLE IF NOT EXISTS griffo (id INTEGER PRIMARY KEY , name TEXT, geografia TEXT, economico TEXT, social TEXT, tecnologico TEXT, cultural TEXT, colaborador TEXT)")
            result = cursor.execute(query, parameters)
            conn.commit()
        return result

【问题讨论】:

  • 您的代码唯一知道数据库名称的地方是这一行:with sqlite3.connect(self.db_name) as conn:。因此,如果两个数据库具有相同的结构,您需要做的就是让您的按钮更改griffo.db_name 的值。
  • 是的,我已经想到了。但我是初学者,我不知道哪个函数可以改变值。我该怎么做?

标签: python sql tkinter


【解决方案1】:

这说明了所需的简单代码:

>>> griffo.db_name
'database.db'
>>> griffo.db_name = 'database2.db'
>>> griffo.db_name
'database2.db'

所以,将griffo.db_name = 'database2.db' 附加到您的按钮。

如果你的按钮是change 那么

change = tk.Button(frame,
               text="Change",
               command=on_change)

def on_change():
    griffo.db_name = 'database2.db'

【讨论】:

  • 您好,我好像没看懂这段代码。你能做一个功能性的例子吗?我不明白这些字符是什么意思:>>>而且我不知道我指的是哪种函数:>>> griffo.db_name 'database.db'。
  • 为了说明,我只是在 Python 提示符下输入了代码。 Python 提示符是>>>,如果您运行 Python 解释器,它会邀请您以这种方式输入 Python。它们不是代码的一部分,您也不会将它们放入您的程序中。我猜您的 GUI 框架是 tkinter(尽管您实际上并没有这么说),并且我在答案中添加了一个基本事件处理程序。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-02-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多