我正在工作的一个软件,可以存储客户端和我们正在为他们做的工作在MySQL数据库,但对于UI工作的方式,我想我需要有每一个数据库或表在一个数组引用以后。例如
MysqlTables = [customers,clients,jobs]
MysqlTables[0] = [joshua,alex,james]
MysqlTables[0][0] = ["computer issue"]
这样我可以在前端UI中引用和显示所有信息使用tree小部件在PyQt4中显示可视导航的任何其他解决方案都将是值得赞赏的
我仍然很新的使用MySQL与python和我有一些麻烦理解一切,我发现这一点,但我不明白它
如何在一个结果集中列出SQL Server中所有数据库中的所有表?
从我可以描绘从这我可能想做一些类似的事情,但我不知道如何实现它,它将不包含客户端的工作信息。
我为我做的一个项目写了一些非常类似的东西,在这个项目中,我基本上在GUI中有一个数据库界面,我允许用户编辑和添加条目到数据库中,而不必进入MySql Workbench。
您将需要两个函数与数据库交互,一个用于检索条目,一个用于执行更改。
这是一些使用SqlAlchemy从数据库检索信息的代码。
def get_info():
sql = text('SELECT id, '
'serial_number, '
'weight_name, '
'units, '
'nominal, '
'customer_name, '
'density, '
'density_uncert , '
'volumetric_exp, '
'comment '
'FROM weights_external '
'ORDER BY id ')
return self.engine.execute(sql).fetchall()
从名为"weights_external"的表中选择id、序列号、单位等,并按id排序。self.engine.execute(sql).fetchall()
返回一个生成器(我想,它可能是一个列表,但我不记得我的头不好意思!),你可以循环并得到所有的结果。在这个例子中,我从这个表中得到10列。如果表有100行,那么该函数将返回一个长度为100的列表,该列表的每个元素将是一个长度为10的列表,每个元素包含来自一列的信息。
我将这个长度为100的列表存储在一个变量中,并使用该变量填充GUI的QTableWidget。
我有一个单独的按钮来调出一个子窗口,允许用户添加一行。此代码与get_info()
非常相似,不同之处在于您现在要更新或插入到表中(您可以在SqlAlchemy或MySql文档中查找)。基本上,你会得到类似这样的内容:
def push_data(self, data):
table = self.weights_external.insert()
self.engine.execute(table.values(id=data['id'],
serial_number=data['serial_num'],
...
comment=data['comment']))
由于时间和空间的原因,我省略了中间的内容,但是这几段代码应该允许您从数据库检索数据,将其放入QTableWidget或另一个QObject中,并允许用户通过按下按钮来更改该数据。如果您有任何问题,请评论!